
/* A Bison parser, made by GNU Bison 2.4.1.  */

/* Skeleton implementation for Bison's Yacc-like parsers in C
   
      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
   Free Software Foundation, Inc.
   
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
   
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.
   
   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */

/* C LALR(1) parser skeleton written by Richard Stallman, by
   simplifying the original so-called "semantic" parser.  */

/* All symbols defined below should begin with yy or YY, to avoid
   infringing on user name space.  This should be done even for local
   variables, as they might otherwise be expanded by user macros.
   There are some unavoidable exceptions within include files to
   define necessary library symbols; they are noted "INFRINGES ON
   USER NAME SPACE" below.  */

/* Identify Bison output.  */
#define YYBISON 1

/* Bison version.  */
#define YYBISON_VERSION "2.4.1"

/* Skeleton name.  */
#define YYSKELETON_NAME "yacc.c"

/* Pure parsers.  */
#define YYPURE 1

/* Push parsers.  */
#define YYPUSH 0

/* Pull parsers.  */
#define YYPULL 1

/* Using locations.  */
#define YYLSP_NEEDED 1

/* Substitute the variable and function names.  */
#define yyparse         base_yyparse
#define yylex           base_yylex
#define yyerror         base_yyerror
#define yylval          base_yylval
#define yychar          base_yychar
#define yydebug         base_yydebug
#define yynerrs         base_yynerrs
#define yylloc          base_yylloc

/* Copy the first part of user declarations.  */

/* Line 189 of yacc.c  */
#line 1 "gram.y"


/*#define YYDEBUG 1*/
/*-------------------------------------------------------------------------
 *
 * gram.y
 *	  POSTGRESQL BISON rules/actions
 *
 * Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 *
 * IDENTIFICATION
 *	  src/backend/parser/gram.y
 *
 * HISTORY
 *	  AUTHOR			DATE			MAJOR EVENT
 *	  Andrew Yu			Sept, 1994		POSTQUEL to SQL conversion
 *	  Andrew Yu			Oct, 1994		lispy code conversion
 *
 * NOTES
 *	  CAPITALS are used to represent terminal symbols.
 *	  non-capitals are used to represent non-terminals.
 *	  SQL92-specific syntax is separated from plain SQL/Postgres syntax
 *	  to help isolate the non-extensible portions of the parser.
 *
 *	  In general, nothing in this file should initiate database accesses
 *	  nor depend on changeable state (such as SET variables).  If you do
 *	  database accesses, your code will fail when we have aborted the
 *	  current transaction and are just parsing commands to find the next
 *	  ROLLBACK or COMMIT.  If you make use of SET variables, then you
 *	  will do the wrong thing in multi-query strings like this:
 *			SET SQL_inheritance TO off; SELECT * FROM foo;
 *	  because the entire string is parsed by gram.y before the SET gets
 *	  executed.  Anything that depends on the database or changeable state
 *	  should be handled during parse analysis so that it happens at the
 *	  right time not the wrong time.  The handling of SQL_inheritance is
 *	  a good example.
 *
 * WARNINGS
 *	  If you use a list, make sure the datum is a node so that the printing
 *	  routines work.
 *
 *	  Sometimes we assign constants to makeStrings. Make sure we don't free
 *	  those.
 *
 *-------------------------------------------------------------------------
 */
#include "postgres.h"

#include <ctype.h>
#include <limits.h>

#include "catalog/index.h"
#include "catalog/namespace.h"
#include "catalog/pg_trigger.h"
#include "commands/defrem.h"
#include "nodes/makefuncs.h"
#include "nodes/nodeFuncs.h"
#include "parser/gramparse.h"
#include "parser/parser.h"
#include "storage/lmgr.h"
#include "utils/date.h"
#include "utils/datetime.h"
#include "utils/numeric.h"
#include "utils/xml.h"


/* Location tracking support --- simpler than bison's default */
#define YYLLOC_DEFAULT(Current, Rhs, N) \
	do { \
		if (N) \
			(Current) = (Rhs)[1]; \
		else \
			(Current) = (Rhs)[0]; \
	} while (0)

/*
 * Bison doesn't allocate anything that needs to live across parser calls,
 * so we can easily have it use palloc instead of malloc.  This prevents
 * memory leaks if we error out during parsing.  Note this only works with
 * bison >= 2.0.  However, in bison 1.875 the default is to use alloca()
 * if possible, so there's not really much problem anyhow, at least if
 * you're building with gcc.
 */
#define YYMALLOC palloc
#define YYFREE   pfree

/* Private struct for the result of privilege_target production */
typedef struct PrivTarget
{
	GrantTargetType targtype;
	GrantObjectType objtype;
	List	   *objs;
} PrivTarget;

/* ConstraintAttributeSpec yields an integer bitmask of these flags: */
#define CAS_NOT_DEFERRABLE			0x01
#define CAS_DEFERRABLE				0x02
#define CAS_INITIALLY_IMMEDIATE		0x04
#define CAS_INITIALLY_DEFERRED		0x08
#define CAS_NOT_VALID				0x10


#define parser_yyerror(msg)  scanner_yyerror(msg, yyscanner)
#define parser_errposition(pos)  scanner_errposition(pos, yyscanner)

static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner,
						 const char *msg);
static Node *makeColumnRef(char *colname, List *indirection,
						   int location, core_yyscan_t yyscanner);
static Node *makeTypeCast(Node *arg, TypeName *typename, int location);
static Node *makeStringConst(char *str, int location);
static Node *makeStringConstCast(char *str, int location, TypeName *typename);
static Node *makeIntConst(int val, int location);
static Node *makeFloatConst(char *str, int location);
static Node *makeBitStringConst(char *str, int location);
static Node *makeNullAConst(int location);
static Node *makeAConst(Value *v, int location);
static Node *makeBoolAConst(bool state, int location);
static FuncCall *makeOverlaps(List *largs, List *rargs,
							  int location, core_yyscan_t yyscanner);
static void check_qualified_name(List *names, core_yyscan_t yyscanner);
static List *check_func_name(List *names, core_yyscan_t yyscanner);
static List *check_indirection(List *indirection, core_yyscan_t yyscanner);
static List *extractArgTypes(List *parameters);
static SelectStmt *findLeftmostSelect(SelectStmt *node);
static void insertSelectOptions(SelectStmt *stmt,
								List *sortClause, List *lockingClause,
								Node *limitOffset, Node *limitCount,
								WithClause *withClause,
								core_yyscan_t yyscanner);
static Node *makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg);
static Node *doNegate(Node *n, int location);
static void doNegateFloat(Value *v);
static Node *makeAArrayExpr(List *elements, int location);
static Node *makeXmlExpr(XmlExprOp op, char *name, List *named_args,
						 List *args, int location);
static List *mergeTableFuncParameters(List *func_args, List *columns);
static TypeName *TableFuncTypeName(List *columns);
static RangeVar *makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner);
static void SplitColQualList(List *qualList,
							 List **constraintList, CollateClause **collClause,
							 core_yyscan_t yyscanner);
static void processCASbits(int cas_bits, int location, const char *constrType,
			   bool *deferrable, bool *initdeferred, bool *not_valid,
			   core_yyscan_t yyscanner);



/* Line 189 of yacc.c  */
#line 232 "gram.c"

/* Enabling traces.  */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif

/* Enabling verbose error messages.  */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif

/* Enabling the token table.  */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
#endif


/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     IDENT = 258,
     FCONST = 259,
     SCONST = 260,
     BCONST = 261,
     XCONST = 262,
     Op = 263,
     ICONST = 264,
     PARAM = 265,
     TYPECAST = 266,
     DOT_DOT = 267,
     COLON_EQUALS = 268,
     ABORT_P = 269,
     ABSOLUTE_P = 270,
     ACCESS = 271,
     ACTION = 272,
     ADD_P = 273,
     ADMIN = 274,
     AFTER = 275,
     AGGREGATE = 276,
     ALL = 277,
     ALSO = 278,
     ALTER = 279,
     ALWAYS = 280,
     ANALYSE = 281,
     ANALYZE = 282,
     AND = 283,
     ANY = 284,
     ARRAY = 285,
     AS = 286,
     ASC = 287,
     ASSERTION = 288,
     ASSIGNMENT = 289,
     ASYMMETRIC = 290,
     AT = 291,
     ATTRIBUTE = 292,
     AUTHORIZATION = 293,
     BACKWARD = 294,
     BEFORE = 295,
     BEGIN_P = 296,
     BETWEEN = 297,
     BIGINT = 298,
     BINARY = 299,
     BIT = 300,
     BOOLEAN_P = 301,
     BOTH = 302,
     BY = 303,
     CACHE = 304,
     CALLED = 305,
     CASCADE = 306,
     CASCADED = 307,
     CASE = 308,
     CAST = 309,
     CATALOG_P = 310,
     CHAIN = 311,
     CHAR_P = 312,
     CHARACTER = 313,
     CHARACTERISTICS = 314,
     CHECK = 315,
     CHECKPOINT = 316,
     CLASS = 317,
     CLOSE = 318,
     CLUSTER = 319,
     COALESCE = 320,
     COLLATE = 321,
     COLLATION = 322,
     COLUMN = 323,
     COMMENT = 324,
     COMMENTS = 325,
     COMMIT = 326,
     COMMITTED = 327,
     CONCURRENTLY = 328,
     CONFIGURATION = 329,
     CONNECTION = 330,
     CONSTRAINT = 331,
     CONSTRAINTS = 332,
     CONTENT_P = 333,
     CONTINUE_P = 334,
     CONVERSION_P = 335,
     COPY = 336,
     COST = 337,
     CREATE = 338,
     CROSS = 339,
     CSV = 340,
     CURRENT_P = 341,
     CURRENT_CATALOG = 342,
     CURRENT_DATE = 343,
     CURRENT_ROLE = 344,
     CURRENT_SCHEMA = 345,
     CURRENT_TIME = 346,
     CURRENT_TIMESTAMP = 347,
     CURRENT_USER = 348,
     CURSOR = 349,
     CYCLE = 350,
     DATA_P = 351,
     DATABASE = 352,
     DAY_P = 353,
     DEALLOCATE = 354,
     DEC = 355,
     DECIMAL_P = 356,
     DECLARE = 357,
     DEFAULT = 358,
     DEFAULTS = 359,
     DEFERRABLE = 360,
     DEFERRED = 361,
     DEFINER = 362,
     DELETE_P = 363,
     DELIMITER = 364,
     DELIMITERS = 365,
     DESC = 366,
     DICTIONARY = 367,
     DISABLE_P = 368,
     DISCARD = 369,
     DISTINCT = 370,
     DO = 371,
     DOCUMENT_P = 372,
     DOMAIN_P = 373,
     DOUBLE_P = 374,
     DROP = 375,
     EACH = 376,
     ELSE = 377,
     ENABLE_P = 378,
     ENCODING = 379,
     ENCRYPTED = 380,
     END_P = 381,
     ENUM_P = 382,
     ESCAPE = 383,
     EXCEPT = 384,
     EXCLUDE = 385,
     EXCLUDING = 386,
     EXCLUSIVE = 387,
     EXECUTE = 388,
     EXISTS = 389,
     EXPLAIN = 390,
     EXTENSION = 391,
     EXTERNAL = 392,
     EXTRACT = 393,
     FALSE_P = 394,
     FAMILY = 395,
     FETCH = 396,
     FIRST_P = 397,
     FLOAT_P = 398,
     FOLLOWING = 399,
     FOR = 400,
     FORCE = 401,
     FOREIGN = 402,
     FORWARD = 403,
     FREEZE = 404,
     FROM = 405,
     FULL = 406,
     FUNCTION = 407,
     FUNCTIONS = 408,
     GLOBAL = 409,
     GRANT = 410,
     GRANTED = 411,
     GREATEST = 412,
     GROUP_P = 413,
     HANDLER = 414,
     HAVING = 415,
     HEADER_P = 416,
     HOLD = 417,
     HOUR_P = 418,
     IDENTITY_P = 419,
     IF_P = 420,
     ILIKE = 421,
     IMMEDIATE = 422,
     IMMUTABLE = 423,
     IMPLICIT_P = 424,
     IN_P = 425,
     INCLUDING = 426,
     INCREMENT = 427,
     INDEX = 428,
     INDEXES = 429,
     INHERIT = 430,
     INHERITS = 431,
     INITIALLY = 432,
     INLINE_P = 433,
     INNER_P = 434,
     INOUT = 435,
     INPUT_P = 436,
     INSENSITIVE = 437,
     INSERT = 438,
     INSTEAD = 439,
     INT_P = 440,
     INTEGER = 441,
     INTERSECT = 442,
     INTERVAL = 443,
     INTO = 444,
     INVOKER = 445,
     IS = 446,
     ISNULL = 447,
     ISOLATION = 448,
     JOIN = 449,
     KEY = 450,
     LABEL = 451,
     LANGUAGE = 452,
     LARGE_P = 453,
     LAST_P = 454,
     LC_COLLATE_P = 455,
     LC_CTYPE_P = 456,
     LEADING = 457,
     LEAST = 458,
     LEFT = 459,
     LEVEL = 460,
     LIKE = 461,
     LIMIT = 462,
     LISTEN = 463,
     LOAD = 464,
     LOCAL = 465,
     LOCALTIME = 466,
     LOCALTIMESTAMP = 467,
     LOCATION = 468,
     LOCK_P = 469,
     MAPPING = 470,
     MATCH = 471,
     MAXVALUE = 472,
     MINUTE_P = 473,
     MINVALUE = 474,
     MODE = 475,
     MONTH_P = 476,
     MOVE = 477,
     NAME_P = 478,
     NAMES = 479,
     NATIONAL = 480,
     NATURAL = 481,
     NCHAR = 482,
     NEXT = 483,
     NO = 484,
     NONE = 485,
     NOT = 486,
     NOTHING = 487,
     NOTIFY = 488,
     NOTNULL = 489,
     NOWAIT = 490,
     NULL_P = 491,
     NULLIF = 492,
     NULLS_P = 493,
     NUMERIC = 494,
     OBJECT_P = 495,
     OF = 496,
     OFF = 497,
     OFFSET = 498,
     OIDS = 499,
     ON = 500,
     ONLY = 501,
     OPERATOR = 502,
     OPTION = 503,
     OPTIONS = 504,
     OR = 505,
     ORDER = 506,
     OUT_P = 507,
     OUTER_P = 508,
     OVER = 509,
     OVERLAPS = 510,
     OVERLAY = 511,
     OWNED = 512,
     OWNER = 513,
     PARSER = 514,
     PARTIAL = 515,
     PARTITION = 516,
     PASSING = 517,
     PASSWORD = 518,
     PLACING = 519,
     PLANS = 520,
     POSITION = 521,
     PRECEDING = 522,
     PRECISION = 523,
     PRESERVE = 524,
     PREPARE = 525,
     PREPARED = 526,
     PRIMARY = 527,
     PRIOR = 528,
     PRIVILEGES = 529,
     PROCEDURAL = 530,
     PROCEDURE = 531,
     QUOTE = 532,
     RANGE = 533,
     READ = 534,
     REAL = 535,
     REASSIGN = 536,
     RECHECK = 537,
     RECURSIVE = 538,
     REF = 539,
     REFERENCES = 540,
     REINDEX = 541,
     RELATIVE_P = 542,
     RELEASE = 543,
     RENAME = 544,
     REPEATABLE = 545,
     REPLACE = 546,
     REPLICA = 547,
     RESET = 548,
     RESTART = 549,
     RESTRICT = 550,
     RETURNING = 551,
     RETURNS = 552,
     REVOKE = 553,
     RIGHT = 554,
     ROLE = 555,
     ROLLBACK = 556,
     ROW = 557,
     ROWS = 558,
     RULE = 559,
     SAVEPOINT = 560,
     SCHEMA = 561,
     SCROLL = 562,
     SEARCH = 563,
     SECOND_P = 564,
     SECURITY = 565,
     SELECT = 566,
     SEQUENCE = 567,
     SEQUENCES = 568,
     SERIALIZABLE = 569,
     SERVER = 570,
     SESSION = 571,
     SESSION_USER = 572,
     SET = 573,
     SETOF = 574,
     SHARE = 575,
     SHOW = 576,
     SIMILAR = 577,
     SIMPLE = 578,
     SMALLINT = 579,
     SOME = 580,
     STABLE = 581,
     STANDALONE_P = 582,
     START = 583,
     STATEMENT = 584,
     STATISTICS = 585,
     STDIN = 586,
     STDOUT = 587,
     STORAGE = 588,
     STRICT_P = 589,
     STRIP_P = 590,
     SUBSTRING = 591,
     SYMMETRIC = 592,
     SYSID = 593,
     SYSTEM_P = 594,
     TABLE = 595,
     TABLES = 596,
     TABLESPACE = 597,
     TEMP = 598,
     TEMPLATE = 599,
     TEMPORARY = 600,
     TEXT_P = 601,
     THEN = 602,
     TIME = 603,
     TIMESTAMP = 604,
     TO = 605,
     TRAILING = 606,
     TRANSACTION = 607,
     TREAT = 608,
     TRIGGER = 609,
     TRIM = 610,
     TRUE_P = 611,
     TRUNCATE = 612,
     TRUSTED = 613,
     TYPE_P = 614,
     UNBOUNDED = 615,
     UNCOMMITTED = 616,
     UNENCRYPTED = 617,
     UNION = 618,
     UNIQUE = 619,
     UNKNOWN = 620,
     UNLISTEN = 621,
     UNLOGGED = 622,
     UNTIL = 623,
     UPDATE = 624,
     USER = 625,
     USING = 626,
     VACUUM = 627,
     VALID = 628,
     VALIDATE = 629,
     VALIDATOR = 630,
     VALUE_P = 631,
     VALUES = 632,
     VARCHAR = 633,
     VARIADIC = 634,
     VARYING = 635,
     VERBOSE = 636,
     VERSION_P = 637,
     VIEW = 638,
     VOLATILE = 639,
     WHEN = 640,
     WHERE = 641,
     WHITESPACE_P = 642,
     WINDOW = 643,
     WITH = 644,
     WITHOUT = 645,
     WORK = 646,
     WRAPPER = 647,
     WRITE = 648,
     XML_P = 649,
     XMLATTRIBUTES = 650,
     XMLCONCAT = 651,
     XMLELEMENT = 652,
     XMLEXISTS = 653,
     XMLFOREST = 654,
     XMLPARSE = 655,
     XMLPI = 656,
     XMLROOT = 657,
     XMLSERIALIZE = 658,
     YEAR_P = 659,
     YES_P = 660,
     ZONE = 661,
     NULLS_FIRST = 662,
     NULLS_LAST = 663,
     WITH_TIME = 664,
     POSTFIXOP = 665,
     UMINUS = 666
   };
#endif



#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{

/* Line 214 of yacc.c  */
#line 160 "gram.y"

	core_YYSTYPE		core_yystype;
	/* these fields must match core_YYSTYPE: */
	int					ival;
	char				*str;
	const char			*keyword;

	char				chr;
	bool				boolean;
	JoinType			jtype;
	DropBehavior		dbehavior;
	OnCommitAction		oncommit;
	List				*list;
	Node				*node;
	Value				*value;
	ObjectType			objtype;
	TypeName			*typnam;
	FunctionParameter   *fun_param;
	FunctionParameterMode fun_param_mode;
	FuncWithArgs		*funwithargs;
	DefElem				*defelt;
	SortBy				*sortby;
	WindowDef			*windef;
	JoinExpr			*jexpr;
	IndexElem			*ielem;
	Alias				*alias;
	RangeVar			*range;
	IntoClause			*into;
	WithClause			*with;
	A_Indices			*aind;
	ResTarget			*target;
	struct PrivTarget	*privtarget;
	AccessPriv			*accesspriv;
	InsertStmt			*istmt;
	VariableSetStmt		*vsetstmt;



/* Line 214 of yacc.c  */
#line 718 "gram.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif

#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
typedef struct YYLTYPE
{
  int first_line;
  int first_column;
  int last_line;
  int last_column;
} YYLTYPE;
# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
# define YYLTYPE_IS_DECLARED 1
# define YYLTYPE_IS_TRIVIAL 1
#endif


/* Copy the second part of user declarations.  */


/* Line 264 of yacc.c  */
#line 743 "gram.c"

#ifdef short
# undef short
#endif

#ifdef YYTYPE_UINT8
typedef YYTYPE_UINT8 yytype_uint8;
#else
typedef unsigned char yytype_uint8;
#endif

#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
typedef signed char yytype_int8;
#else
typedef short int yytype_int8;
#endif

#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
typedef unsigned short int yytype_uint16;
#endif

#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
typedef short int yytype_int16;
#endif

#ifndef YYSIZE_T
# ifdef __SIZE_TYPE__
#  define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
#  define YYSIZE_T size_t
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  define YYSIZE_T size_t
# else
#  define YYSIZE_T unsigned int
# endif
#endif

#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)

#ifndef YY_
# if YYENABLE_NLS
#  if ENABLE_NLS
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
#   define YY_(msgid) dgettext ("bison-runtime", msgid)
#  endif
# endif
# ifndef YY_
#  define YY_(msgid) msgid
# endif
#endif

/* Suppress unused-variable warnings by "using" E.  */
#if ! defined lint || defined __GNUC__
# define YYUSE(e) ((void) (e))
#else
# define YYUSE(e) /* empty */
#endif

/* Identity function, used to suppress warnings about constant conditions.  */
#ifndef lint
# define YYID(n) (n)
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static int
YYID (int yyi)
#else
static int
YYID (yyi)
    int yyi;
#endif
{
  return yyi;
}
#endif

#if ! defined yyoverflow || YYERROR_VERBOSE

/* The parser invokes alloca or malloc; define the necessary symbols.  */

# ifdef YYSTACK_USE_ALLOCA
#  if YYSTACK_USE_ALLOCA
#   ifdef __GNUC__
#    define YYSTACK_ALLOC __builtin_alloca
#   elif defined __BUILTIN_VA_ARG_INCR
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
#   elif defined _AIX
#    define YYSTACK_ALLOC __alloca
#   elif defined _MSC_VER
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
#    define alloca _alloca
#   else
#    define YYSTACK_ALLOC alloca
#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#     ifndef _STDLIB_H
#      define _STDLIB_H 1
#     endif
#    endif
#   endif
#  endif
# endif

# ifdef YYSTACK_ALLOC
   /* Pacify GCC's `empty if-body' warning.  */
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
#  ifndef YYSTACK_ALLOC_MAXIMUM
    /* The OS might guarantee only one guard page at the bottom of the stack,
       and a page size can be as small as 4096 bytes.  So we cannot safely
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
       to allow for a few compiler-allocated temporary stack slots.  */
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
#  endif
# else
#  define YYSTACK_ALLOC YYMALLOC
#  define YYSTACK_FREE YYFREE
#  ifndef YYSTACK_ALLOC_MAXIMUM
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
#  endif
#  if (defined __cplusplus && ! defined _STDLIB_H \
       && ! ((defined YYMALLOC || defined malloc) \
	     && (defined YYFREE || defined free)))
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#   ifndef _STDLIB_H
#    define _STDLIB_H 1
#   endif
#  endif
#  ifndef YYMALLOC
#   define YYMALLOC malloc
#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
#  ifndef YYFREE
#   define YYFREE free
#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
# endif
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */


#if (! defined yyoverflow \
     && (! defined __cplusplus \
	 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
	     && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))

/* A type that is properly aligned for any stack member.  */
union yyalloc
{
  yytype_int16 yyss_alloc;
  YYSTYPE yyvs_alloc;
  YYLTYPE yyls_alloc;
};

/* The size of the maximum gap between one aligned stack and the next.  */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)

/* The size of an array large to enough to hold all stacks, each with
   N elements.  */
# define YYSTACK_BYTES(N) \
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
      + 2 * YYSTACK_GAP_MAXIMUM)

/* Copy COUNT objects from FROM to TO.  The source and destination do
   not overlap.  */
# ifndef YYCOPY
#  if defined __GNUC__ && 1 < __GNUC__
#   define YYCOPY(To, From, Count) \
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
#  else
#   define YYCOPY(To, From, Count)		\
      do					\
	{					\
	  YYSIZE_T yyi;				\
	  for (yyi = 0; yyi < (Count); yyi++)	\
	    (To)[yyi] = (From)[yyi];		\
	}					\
      while (YYID (0))
#  endif
# endif

/* Relocate STACK from its old location to the new one.  The
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
   elements in the stack, and YYPTR gives the new location of the
   stack.  Advance YYPTR to a properly aligned location for the next
   stack.  */
# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
    do									\
      {									\
	YYSIZE_T yynewbytes;						\
	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
	Stack = &yyptr->Stack_alloc;					\
	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
	yyptr += yynewbytes / sizeof (*yyptr);				\
      }									\
    while (YYID (0))

#endif

/* YYFINAL -- State number of the termination state.  */
#define YYFINAL  693
/* YYLAST -- Last index in YYTABLE.  */
#define YYLAST   67046

/* YYNTOKENS -- Number of terminals.  */
#define YYNTOKENS  429
/* YYNNTS -- Number of nonterminals.  */
#define YYNNTS  544
/* YYNRULES -- Number of rules.  */
#define YYNRULES  2212
/* YYNRULES -- Number of states.  */
#define YYNSTATES  4172

/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
#define YYUNDEFTOK  2
#define YYMAXUTOK   666

#define YYTRANSLATE(YYX)						\
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
static const yytype_uint16 yytranslate[] =
{
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,   418,     2,     2,
     423,   424,   416,   414,   427,   415,   425,   417,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,   428,   426,
     411,   410,   412,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,   421,     2,   422,   419,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   413,   420
};

#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
   YYRHS.  */
static const yytype_uint16 yyprhs[] =
{
       0,     0,     3,     5,     9,    11,    13,    15,    17,    19,
      21,    23,    25,    27,    29,    31,    33,    35,    37,    39,
      41,    43,    45,    47,    49,    51,    53,    55,    57,    59,
      61,    63,    65,    67,    69,    71,    73,    75,    77,    79,
      81,    83,    85,    87,    89,    91,    93,    95,    97,    99,
     101,   103,   105,   107,   109,   111,   113,   115,   117,   119,
     121,   123,   125,   127,   129,   131,   133,   135,   137,   139,
     141,   143,   145,   147,   149,   151,   153,   155,   157,   159,
     161,   163,   165,   167,   169,   171,   173,   175,   177,   179,
     181,   183,   185,   187,   189,   191,   193,   195,   197,   199,
     201,   203,   205,   207,   209,   211,   213,   215,   217,   219,
     221,   223,   225,   227,   229,   231,   232,   238,   240,   241,
     244,   245,   248,   249,   252,   255,   259,   263,   265,   269,
     273,   276,   278,   280,   283,   286,   289,   293,   297,   303,
     309,   310,   314,   320,   326,   331,   335,   341,   345,   351,
     357,   364,   366,   368,   372,   378,   385,   390,   392,   393,
     396,   397,   399,   401,   403,   405,   407,   409,   412,   416,
     420,   424,   428,   432,   436,   440,   444,   447,   453,   456,
     459,   462,   465,   469,   473,   477,   479,   483,   485,   489,
     491,   493,   496,   499,   502,   504,   506,   508,   510,   512,
     514,   516,   520,   527,   529,   531,   533,   535,   537,   538,
     540,   542,   545,   549,   554,   558,   561,   564,   566,   569,
     573,   578,   582,   585,   590,   592,   594,   596,   598,   600,
     603,   606,   609,   612,   617,   622,   627,   632,   634,   638,
     641,   645,   650,   657,   664,   671,   677,   683,   690,   697,
     702,   711,   714,   718,   725,   730,   734,   738,   742,   746,
     750,   755,   760,   764,   768,   772,   776,   780,   784,   789,
     794,   798,   801,   805,   808,   811,   815,   819,   822,   825,
     827,   831,   834,   836,   838,   839,   842,   843,   846,   847,
     851,   854,   855,   857,   861,   865,   867,   873,   877,   882,
     884,   888,   893,   900,   905,   914,   917,   920,   931,   938,
     940,   942,   944,   946,   948,   950,   954,   957,   958,   960,
     962,   966,   970,   972,   974,   978,   982,   986,   990,   995,
     998,  1000,  1001,  1004,  1005,  1009,  1010,  1012,  1013,  1015,
    1019,  1022,  1024,  1026,  1028,  1032,  1033,  1035,  1039,  1041,
    1053,  1068,  1079,  1093,  1095,  1097,  1100,  1103,  1106,  1109,
    1111,  1112,  1114,  1115,  1119,  1120,  1122,  1126,  1128,  1132,
    1134,  1136,  1138,  1140,  1142,  1146,  1151,  1154,  1155,  1159,
    1161,  1163,  1166,  1169,  1171,  1175,  1180,  1185,  1188,  1194,
    1196,  1199,  1202,  1205,  1209,  1213,  1217,  1218,  1220,  1222,
    1224,  1226,  1228,  1230,  1234,  1236,  1242,  1250,  1254,  1263,
    1268,  1278,  1290,  1294,  1295,  1297,  1301,  1303,  1306,  1309,
    1312,  1313,  1315,  1319,  1323,  1330,  1335,  1336,  1338,  1340,
    1343,  1346,  1347,  1351,  1355,  1358,  1360,  1362,  1365,  1368,
    1373,  1374,  1377,  1380,  1383,  1384,  1388,  1393,  1398,  1399,
    1402,  1403,  1408,  1409,  1413,  1421,  1427,  1431,  1432,  1434,
    1438,  1440,  1443,  1447,  1448,  1454,  1459,  1461,  1462,  1464,
    1467,  1470,  1472,  1475,  1479,  1482,  1485,  1488,  1491,  1495,
    1499,  1501,  1505,  1507,  1508,  1510,  1513,  1515,  1517,  1521,
    1528,  1539,  1541,  1542,  1544,  1547,  1550,  1551,  1554,  1557,
    1559,  1560,  1566,  1574,  1576,  1577,  1584,  1587,  1588,  1592,
    1598,  1604,  1613,  1616,  1617,  1620,  1623,  1626,  1632,  1635,
    1636,  1639,  1647,  1658,  1665,  1672,  1679,  1686,  1694,  1702,
    1712,  1722,  1729,  1736,  1745,  1754,  1763,  1772,  1779,  1786,
    1794,  1803,  1810,  1817,  1825,  1828,  1831,  1834,  1837,  1839,
    1842,  1844,  1845,  1852,  1861,  1869,  1876,  1881,  1882,  1884,
    1888,  1893,  1895,  1899,  1901,  1904,  1907,  1910,  1913,  1915,
    1917,  1928,  1931,  1932,  1935,  1938,  1940,  1941,  1946,  1953,
    1959,  1964,  1969,  1978,  1990,  1994,  1997,  1999,  2003,  2005,
    2011,  2020,  2022,  2024,  2026,  2034,  2044,  2053,  2069,  2090,
    2092,  2094,  2097,  2099,  2103,  2105,  2107,  2109,  2113,  2115,
    2119,  2120,  2122,  2123,  2125,  2127,  2132,  2133,  2135,  2139,
    2140,  2142,  2144,  2146,  2148,  2151,  2152,  2153,  2156,  2159,
    2161,  2164,  2167,  2170,  2177,  2186,  2195,  2200,  2206,  2211,
    2216,  2221,  2225,  2233,  2242,  2249,  2256,  2263,  2270,  2275,
    2281,  2285,  2287,  2291,  2295,  2297,  2299,  2301,  2303,  2305,
    2307,  2311,  2315,  2319,  2321,  2325,  2329,  2331,  2332,  2334,
    2338,  2345,  2354,  2363,  2377,  2379,  2383,  2389,  2396,  2401,
    2409,  2412,  2414,  2415,  2418,  2419,  2422,  2427,  2428,  2430,
    2431,  2438,  2447,  2456,  2458,  2462,  2468,  2474,  2482,  2492,
    2500,  2510,  2516,  2523,  2530,  2535,  2537,  2539,  2541,  2543,
    2546,  2548,  2550,  2552,  2554,  2556,  2558,  2562,  2566,  2570,
    2574,  2576,  2580,  2582,  2585,  2588,  2592,  2598,  2601,  2604,
    2605,  2612,  2620,  2628,  2636,  2645,  2654,  2661,  2670,  2680,
    2690,  2698,  2709,  2717,  2726,  2735,  2744,  2753,  2755,  2757,
    2759,  2761,  2763,  2765,  2767,  2769,  2771,  2773,  2775,  2777,
    2779,  2781,  2784,  2786,  2790,  2792,  2794,  2803,  2813,  2823,
    2833,  2843,  2846,  2847,  2849,  2852,  2854,  2856,  2858,  2860,
    2862,  2864,  2866,  2868,  2871,  2874,  2876,  2879,  2883,  2887,
    2891,  2895,  2900,  2905,  2909,  2913,  2917,  2922,  2927,  2931,
    2936,  2941,  2943,  2945,  2947,  2948,  2956,  2964,  2975,  2977,
    2979,  2982,  2987,  2993,  2995,  2999,  3002,  3005,  3008,  3011,
    3013,  3016,  3019,  3024,  3028,  3031,  3034,  3037,  3041,  3044,
    3047,  3053,  3059,  3065,  3067,  3071,  3073,  3076,  3080,  3081,
    3083,  3087,  3090,  3097,  3104,  3114,  3118,  3119,  3123,  3124,
    3130,  3133,  3134,  3138,  3142,  3146,  3154,  3162,  3173,  3175,
    3177,  3179,  3194,  3196,  3197,  3199,  3200,  3202,  3203,  3206,
    3207,  3209,  3213,  3219,  3225,  3233,  3236,  3237,  3239,  3242,
    3243,  3245,  3247,  3248,  3250,  3252,  3253,  3263,  3276,  3284,
    3287,  3288,  3292,  3295,  3297,  3301,  3305,  3308,  3310,  3314,
    3318,  3322,  3325,  3328,  3330,  3332,  3334,  3336,  3339,  3341,
    3343,  3345,  3347,  3352,  3358,  3360,  3364,  3368,  3370,  3373,
    3378,  3384,  3386,  3388,  3390,  3392,  3396,  3400,  3403,  3406,
    3409,  3412,  3414,  3417,  3420,  3422,  3424,  3426,  3430,  3433,
    3434,  3437,  3439,  3443,  3449,  3451,  3454,  3456,  3457,  3463,
    3471,  3477,  3485,  3491,  3499,  3503,  3509,  3515,  3521,  3523,
    3527,  3530,  3532,  3535,  3537,  3540,  3552,  3563,  3574,  3577,
    3580,  3581,  3591,  3594,  3595,  3600,  3605,  3610,  3612,  3614,
    3616,  3617,  3625,  3632,  3639,  3646,  3653,  3660,  3668,  3678,
    3688,  3695,  3702,  3709,  3716,  3723,  3731,  3740,  3750,  3759,
    3766,  3773,  3780,  3786,  3792,  3801,  3810,  3819,  3828,  3835,
    3845,  3847,  3848,  3851,  3852,  3860,  3867,  3874,  3881,  3888,
    3895,  3903,  3913,  3923,  3930,  3939,  3948,  3957,  3966,  3973,
    3980,  3988,  3995,  4003,  4010,  4017,  4024,  4031,  4038,  4046,
    4054,  4062,  4072,  4082,  4089,  4096,  4103,  4112,  4121,  4130,
    4137,  4151,  4153,  4155,  4159,  4163,  4165,  4167,  4169,  4171,
    4173,  4175,  4177,  4178,  4180,  4182,  4184,  4186,  4188,  4190,
    4191,  4198,  4207,  4211,  4214,  4215,  4218,  4221,  4224,  4227,
    4231,  4235,  4238,  4241,  4244,  4247,  4251,  4254,  4260,  4265,
    4269,  4273,  4277,  4279,  4281,  4282,  4286,  4289,  4292,  4294,
    4297,  4299,  4303,  4306,  4308,  4309,  4318,  4329,  4333,  4338,
    4343,  4344,  4347,  4353,  4356,  4357,  4361,  4365,  4369,  4373,
    4377,  4381,  4385,  4389,  4393,  4397,  4401,  4405,  4409,  4414,
    4418,  4422,  4424,  4425,  4431,  4438,  4443,  4446,  4447,  4452,
    4456,  4462,  4469,  4474,  4481,  4488,  4494,  4502,  4504,  4505,
    4512,  4524,  4536,  4548,  4562,  4572,  4584,  4595,  4600,  4603,
    4609,  4612,  4613,  4618,  4624,  4630,  4635,  4642,  4644,  4648,
    4650,  4652,  4654,  4656,  4659,  4664,  4666,  4668,  4670,  4671,
    4673,  4674,  4676,  4677,  4681,  4682,  4685,  4690,  4694,  4700,
    4702,  4704,  4706,  4708,  4710,  4712,  4714,  4716,  4720,  4723,
    4725,  4727,  4729,  4731,  4733,  4734,  4740,  4744,  4745,  4747,
    4749,  4751,  4753,  4757,  4766,  4770,  4771,  4774,  4778,  4781,
    4785,  4792,  4794,  4799,  4802,  4804,  4808,  4811,  4814,  4815,
    4823,  4826,  4827,  4833,  4837,  4838,  4841,  4844,  4847,  4851,
    4853,  4857,  4859,  4862,  4864,  4865,  4874,  4876,  4880,  4882,
    4884,  4888,  4894,  4897,  4899,  4903,  4911,  4913,  4914,  4918,
    4921,  4924,  4927,  4928,  4931,  4934,  4936,  4938,  4942,  4946,
    4948,  4951,  4956,  4961,  4964,  4968,  4974,  4980,  4982,  4984,
    4994,  4996,  4999,  5004,  5009,  5014,  5017,  5021,  5023,  5027,
    5034,  5036,  5037,  5040,  5041,  5045,  5049,  5054,  5059,  5064,
    5069,  5073,  5076,  5078,  5080,  5081,  5083,  5085,  5086,  5088,
    5094,  5096,  5097,  5099,  5100,  5104,  5106,  5110,  5115,  5119,
    5122,  5125,  5127,  5129,  5131,  5132,  5135,  5140,  5146,  5149,
    5153,  5155,  5157,  5159,  5161,  5165,  5166,  5168,  5170,  5172,
    5174,  5176,  5180,  5181,  5184,  5185,  5187,  5191,  5193,  5194,
    5196,  5199,  5204,  5209,  5212,  5213,  5216,  5220,  5223,  5224,
    5226,  5230,  5232,  5235,  5237,  5240,  5246,  5253,  5259,  5261,
    5264,  5266,  5271,  5275,  5280,  5286,  5291,  5297,  5302,  5308,
    5311,  5316,  5318,  5321,  5324,  5327,  5329,  5331,  5332,  5337,
    5340,  5342,  5345,  5348,  5353,  5355,  5359,  5361,  5364,  5368,
    5370,  5373,  5374,  5377,  5382,  5383,  5385,  5386,  5388,  5392,
    5396,  5399,  5403,  5409,  5416,  5419,  5423,  5427,  5432,  5433,
    5435,  5437,  5439,  5441,  5443,  5446,  5452,  5454,  5456,  5458,
    5460,  5463,  5467,  5471,  5472,  5474,  5476,  5478,  5480,  5482,
    5485,  5488,  5491,  5494,  5497,  5499,  5503,  5504,  5506,  5508,
    5510,  5512,  5518,  5521,  5523,  5525,  5527,  5529,  5535,  5538,
    5541,  5544,  5546,  5550,  5554,  5557,  5559,  5560,  5564,  5565,
    5571,  5574,  5580,  5583,  5585,  5588,  5592,  5593,  5595,  5597,
    5599,  5601,  5603,  5605,  5609,  5613,  5617,  5621,  5625,  5629,
    5633,  5634,  5636,  5641,  5643,  5647,  5651,  5657,  5660,  5663,
    5667,  5671,  5675,  5679,  5683,  5687,  5691,  5695,  5699,  5703,
    5706,  5709,  5713,  5717,  5720,  5724,  5730,  5735,  5742,  5746,
    5752,  5757,  5764,  5769,  5776,  5782,  5790,  5794,  5797,  5802,
    5805,  5809,  5813,  5818,  5822,  5827,  5831,  5836,  5842,  5849,
    5856,  5864,  5871,  5879,  5886,  5894,  5898,  5903,  5908,  5915,
    5918,  5922,  5927,  5929,  5933,  5936,  5939,  5943,  5947,  5951,
    5955,  5959,  5963,  5967,  5971,  5975,  5979,  5982,  5985,  5991,
    5998,  6005,  6013,  6017,  6022,  6024,  6026,  6029,  6034,  6036,
    6038,  6040,  6043,  6046,  6049,  6051,  6056,  6062,  6069,  6078,
    6085,  6093,  6101,  6107,  6109,  6111,  6116,  6118,  6123,  6125,
    6130,  6132,  6137,  6139,  6141,  6143,  6145,  6147,  6149,  6156,
    6161,  6166,  6171,  6176,  6183,  6189,  6195,  6201,  6206,  6213,
    6218,  6223,  6228,  6233,  6239,  6247,  6255,  6265,  6271,  6276,
    6283,  6289,  6297,  6305,  6313,  6316,  6320,  6324,  6328,  6333,
    6334,  6339,  6341,  6345,  6349,  6351,  6353,  6355,  6358,  6361,
    6362,  6365,  6370,  6375,  6382,  6385,  6386,  6388,  6392,  6396,
    6399,  6402,  6403,  6410,  6412,  6413,  6417,  6418,  6421,  6424,
    6425,  6427,  6432,  6435,  6438,  6441,  6444,  6447,  6452,  6456,
    6462,  6464,  6466,  6468,  6470,  6472,  6474,  6476,  6478,  6480,
    6482,  6484,  6486,  6488,  6490,  6492,  6497,  6499,  6504,  6506,
    6511,  6513,  6516,  6518,  6521,  6523,  6527,  6529,  6533,  6535,
    6539,  6541,  6545,  6549,  6553,  6556,  6558,  6562,  6566,  6567,
    6569,  6571,  6573,  6575,  6577,  6579,  6581,  6583,  6588,  6592,
    6595,  6599,  6600,  6604,  6608,  6611,  6614,  6616,  6617,  6620,
    6623,  6627,  6630,  6632,  6634,  6638,  6644,  6646,  6649,  6654,
    6657,  6658,  6660,  6661,  6663,  6666,  6669,  6672,  6676,  6682,
    6684,  6687,  6688,  6691,  6693,  6694,  6696,  6698,  6700,  6704,
    6708,  6710,  6714,  6718,  6721,  6723,  6725,  6727,  6731,  6733,
    6736,  6738,  6742,  6744,  6746,  6748,  6750,  6752,  6754,  6756,
    6759,  6761,  6763,  6765,  6767,  6769,  6772,  6778,  6781,  6785,
    6792,  6794,  6796,  6798,  6800,  6802,  6804,  6806,  6809,  6812,
    6814,  6816,  6818,  6820,  6822,  6824,  6826,  6828,  6830,  6832,
    6834,  6836,  6838,  6840,  6842,  6844,  6846,  6848,  6850,  6852,
    6854,  6856,  6858,  6860,  6862,  6864,  6866,  6868,  6870,  6872,
    6874,  6876,  6878,  6880,  6882,  6884,  6886,  6888,  6890,  6892,
    6894,  6896,  6898,  6900,  6902,  6904,  6906,  6908,  6910,  6912,
    6914,  6916,  6918,  6920,  6922,  6924,  6926,  6928,  6930,  6932,
    6934,  6936,  6938,  6940,  6942,  6944,  6946,  6948,  6950,  6952,
    6954,  6956,  6958,  6960,  6962,  6964,  6966,  6968,  6970,  6972,
    6974,  6976,  6978,  6980,  6982,  6984,  6986,  6988,  6990,  6992,
    6994,  6996,  6998,  7000,  7002,  7004,  7006,  7008,  7010,  7012,
    7014,  7016,  7018,  7020,  7022,  7024,  7026,  7028,  7030,  7032,
    7034,  7036,  7038,  7040,  7042,  7044,  7046,  7048,  7050,  7052,
    7054,  7056,  7058,  7060,  7062,  7064,  7066,  7068,  7070,  7072,
    7074,  7076,  7078,  7080,  7082,  7084,  7086,  7088,  7090,  7092,
    7094,  7096,  7098,  7100,  7102,  7104,  7106,  7108,  7110,  7112,
    7114,  7116,  7118,  7120,  7122,  7124,  7126,  7128,  7130,  7132,
    7134,  7136,  7138,  7140,  7142,  7144,  7146,  7148,  7150,  7152,
    7154,  7156,  7158,  7160,  7162,  7164,  7166,  7168,  7170,  7172,
    7174,  7176,  7178,  7180,  7182,  7184,  7186,  7188,  7190,  7192,
    7194,  7196,  7198,  7200,  7202,  7204,  7206,  7208,  7210,  7212,
    7214,  7216,  7218,  7220,  7222,  7224,  7226,  7228,  7230,  7232,
    7234,  7236,  7238,  7240,  7242,  7244,  7246,  7248,  7250,  7252,
    7254,  7256,  7258,  7260,  7262,  7264,  7266,  7268,  7270,  7272,
    7274,  7276,  7278,  7280,  7282,  7284,  7286,  7288,  7290,  7292,
    7294,  7296,  7298,  7300,  7302,  7304,  7306,  7308,  7310,  7312,
    7314,  7316,  7318,  7320,  7322,  7324,  7326,  7328,  7330,  7332,
    7334,  7336,  7338,  7340,  7342,  7344,  7346,  7348,  7350,  7352,
    7354,  7356,  7358,  7360,  7362,  7364,  7366,  7368,  7370,  7372,
    7374,  7376,  7378,  7380,  7382,  7384,  7386,  7388,  7390,  7392,
    7394,  7396,  7398,  7400,  7402,  7404,  7406,  7408,  7410,  7412,
    7414,  7416,  7418,  7420,  7422,  7424,  7426,  7428,  7430,  7432,
    7434,  7436,  7438,  7440,  7442,  7444,  7446,  7448,  7450,  7452,
    7454,  7456,  7458,  7460,  7462,  7464,  7466,  7468,  7470,  7472,
    7474,  7476,  7478,  7480,  7482,  7484,  7486,  7488,  7490,  7492,
    7494,  7496,  7498,  7500,  7502,  7504,  7506,  7508,  7510,  7512,
    7514,  7516,  7518,  7520,  7522,  7524,  7526,  7528,  7530,  7532,
    7534,  7536,  7538,  7540,  7542,  7544,  7546,  7548,  7550,  7552,
    7554,  7556,  7558,  7560,  7562,  7564,  7566,  7568,  7570,  7572,
    7574,  7576,  7578,  7580,  7582,  7584,  7586,  7588,  7590,  7592,
    7594,  7596,  7598,  7600,  7602,  7604,  7606,  7608,  7610,  7612,
    7614,  7616,  7618
};

/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
static const yytype_int16 yyrhs[] =
{
     430,     0,    -1,   431,    -1,   431,   426,   432,    -1,   432,
      -1,   758,    -1,   759,    -1,   676,    -1,   764,    -1,   627,
      -1,   567,    -1,   570,    -1,   576,    -1,   590,    -1,   595,
      -1,   711,    -1,   448,    -1,   732,    -1,   733,    -1,   546,
      -1,   473,    -1,   484,    -1,   442,    -1,   440,    -1,   767,
      -1,   766,    -1,   599,    -1,   444,    -1,   443,    -1,   774,
      -1,   471,    -1,   487,    -1,   769,    -1,   650,    -1,   468,
      -1,   488,    -1,   539,    -1,   614,    -1,   722,    -1,   768,
      -1,   763,    -1,   564,    -1,   571,    -1,   585,    -1,   591,
      -1,   692,    -1,   447,    -1,   628,    -1,   635,    -1,   636,
      -1,   553,    -1,   451,    -1,   545,    -1,   503,    -1,   561,
      -1,   600,    -1,   433,    -1,   439,    -1,   596,    -1,   754,
      -1,   791,    -1,   810,    -1,   616,    -1,   797,    -1,   472,
      -1,   719,    -1,   615,    -1,   724,    -1,   575,    -1,   589,
      -1,   450,    -1,   639,    -1,   640,    -1,   641,    -1,   559,
      -1,   741,    -1,   643,    -1,   563,    -1,   613,    -1,   445,
      -1,   446,    -1,   598,    -1,   762,    -1,   789,    -1,   780,
      -1,   657,    -1,   661,    -1,   672,    -1,   681,    -1,   792,
      -1,   744,    -1,   753,    -1,   799,    -1,   742,    -1,   786,
      -1,   642,    -1,   726,    -1,   715,    -1,   714,    -1,   716,
      -1,   729,    -1,   662,    -1,   673,    -1,   734,    -1,   653,
      -1,   814,    -1,   746,    -1,   648,    -1,   745,    -1,   803,
      -1,   771,    -1,   465,    -1,   455,    -1,   467,    -1,   751,
      -1,    -1,    83,   300,   964,   434,   435,    -1,   389,    -1,
      -1,   435,   438,    -1,    -1,   436,   437,    -1,    -1,   263,
     963,    -1,   263,   236,    -1,   125,   263,   963,    -1,   362,
     263,   963,    -1,   175,    -1,    75,   207,   965,    -1,   373,
     368,   963,    -1,   370,   953,    -1,     3,    -1,   437,    -1,
     338,   962,    -1,    19,   953,    -1,   300,   953,    -1,   170,
     300,   953,    -1,   170,   158,   953,    -1,    83,   370,   964,
     434,   435,    -1,    24,   300,   964,   434,   436,    -1,    -1,
     170,    97,   955,    -1,    24,   300,   964,   441,   466,    -1,
      24,   370,   964,   434,   436,    -1,    24,   370,   964,   466,
      -1,   120,   300,   953,    -1,   120,   300,   165,   134,   953,
      -1,   120,   370,   953,    -1,   120,   370,   165,   134,   953,
      -1,    83,   158,   964,   434,   435,    -1,    24,   158,   964,
     449,   370,   953,    -1,    18,    -1,   120,    -1,   120,   158,
     953,    -1,   120,   158,   165,   134,   953,    -1,    83,   306,
     452,    38,   964,   453,    -1,    83,   306,   966,   453,    -1,
     966,    -1,    -1,   453,   454,    -1,    -1,   503,    -1,   681,
      -1,   545,    -1,   600,    -1,   661,    -1,   751,    -1,   318,
     456,    -1,   318,   210,   456,    -1,   318,   316,   456,    -1,
     457,   350,   458,    -1,   457,   410,   458,    -1,   457,   350,
     103,    -1,   457,   410,   103,    -1,   457,   150,    86,    -1,
     348,   406,   462,    -1,   352,   749,    -1,   316,    59,    31,
     352,   749,    -1,    55,   963,    -1,   306,   963,    -1,   224,
     463,    -1,   300,   464,    -1,   316,    38,   464,    -1,   316,
      38,   103,    -1,   394,   248,   900,    -1,   966,    -1,   457,
     425,   966,    -1,   459,    -1,   458,   427,   459,    -1,   461,
      -1,   551,    -1,   279,   361,    -1,   279,    72,    -1,   290,
     279,    -1,   314,    -1,   356,    -1,   139,    -1,   245,    -1,
     464,    -1,   963,    -1,     3,    -1,   887,   963,   889,    -1,
     887,   423,   962,   424,   963,   889,    -1,   551,    -1,   103,
      -1,   210,    -1,   963,    -1,   103,    -1,    -1,   966,    -1,
     963,    -1,   293,   457,    -1,   293,   348,   406,    -1,   293,
     352,   193,   205,    -1,   293,   316,    38,    -1,   293,    22,
      -1,   318,   456,    -1,   465,    -1,   321,   457,    -1,   321,
     348,   406,    -1,   321,   352,   193,   205,    -1,   321,   316,
      38,    -1,   321,    22,    -1,   318,    77,   469,   470,    -1,
      22,    -1,   951,    -1,   106,    -1,   167,    -1,    61,    -1,
     114,    22,    -1,   114,   343,    -1,   114,   345,    -1,   114,
     265,    -1,    24,   340,   858,   474,    -1,    24,   173,   952,
     474,    -1,    24,   312,   952,   474,    -1,    24,   383,   952,
     474,    -1,   475,    -1,   474,   427,   475,    -1,    18,   511,
      -1,    18,    68,   511,    -1,    24,   730,   966,   476,    -1,
      24,   730,   966,   120,   231,   236,    -1,    24,   730,   966,
     318,   231,   236,    -1,    24,   730,   966,   318,   330,   965,
      -1,    24,   730,   966,   318,   480,    -1,    24,   730,   966,
     293,   480,    -1,    24,   730,   966,   318,   333,   966,    -1,
     120,   730,   165,   134,   966,   477,    -1,   120,   730,   966,
     477,    -1,    24,   730,   966,   731,   359,   867,   478,   479,
      -1,    18,   520,    -1,   374,    76,   954,    -1,   120,    76,
     165,   134,   954,   477,    -1,   120,    76,   954,   477,    -1,
     318,   389,   244,    -1,   318,   390,   244,    -1,    64,   245,
     954,    -1,   318,   390,    64,    -1,   123,   354,   954,    -1,
     123,    25,   354,   954,    -1,   123,   292,   354,   954,    -1,
     123,   354,    22,    -1,   123,   354,   370,    -1,   113,   354,
     954,    -1,   113,   354,    22,    -1,   113,   354,   370,    -1,
     123,   304,   954,    -1,   123,    25,   304,   954,    -1,   123,
     292,   304,   954,    -1,   113,   304,   954,    -1,   175,   952,
      -1,   229,   175,   952,    -1,   241,   646,    -1,   231,   241,
      -1,   258,   350,   964,    -1,   318,   342,   954,    -1,   318,
     480,    -1,   293,   480,    -1,   579,    -1,   318,   103,   891,
      -1,   120,   103,    -1,    51,    -1,   295,    -1,    -1,    66,
     646,    -1,    -1,   371,   891,    -1,    -1,   423,   482,   424,
      -1,   389,   480,    -1,    -1,   483,    -1,   482,   427,   483,
      -1,   968,   410,   620,    -1,   968,    -1,   968,   425,   968,
     410,   620,    -1,   968,   425,   968,    -1,    24,   359,   646,
     485,    -1,   486,    -1,   485,   427,   486,    -1,    18,    37,
     866,   477,    -1,   120,    37,   165,   134,   966,   477,    -1,
     120,    37,   966,   477,    -1,    24,    37,   966,   731,   359,
     867,   478,   477,    -1,    63,   811,    -1,    63,    22,    -1,
      81,   494,   952,   522,   495,   489,   490,   496,   434,   491,
      -1,    81,   815,   350,   490,   434,   491,    -1,   150,    -1,
     350,    -1,   963,    -1,   331,    -1,   332,    -1,   492,    -1,
     423,   498,   424,    -1,   492,   493,    -1,    -1,    44,    -1,
     244,    -1,   109,   765,   963,    -1,   236,   765,   963,    -1,
      85,    -1,   161,    -1,   277,   765,   963,    -1,   128,   765,
     963,    -1,   146,   277,   523,    -1,   146,   277,   416,    -1,
     146,   231,   236,   523,    -1,   124,   963,    -1,    44,    -1,
      -1,   389,   244,    -1,    -1,   497,   110,   963,    -1,    -1,
     371,    -1,    -1,   499,    -1,   498,   427,   499,    -1,   968,
     500,    -1,   461,    -1,   551,    -1,   416,    -1,   423,   501,
     424,    -1,    -1,   502,    -1,   501,   427,   502,    -1,   461,
      -1,    83,   504,   340,   952,   423,   505,   424,   533,   534,
     535,   536,    -1,    83,   504,   340,   165,   231,   134,   952,
     423,   505,   424,   533,   534,   535,   536,    -1,    83,   504,
     340,   952,   241,   646,   506,   534,   535,   536,    -1,    83,
     504,   340,   165,   231,   134,   952,   241,   646,   506,   534,
     535,   536,    -1,   345,    -1,   343,    -1,   210,   345,    -1,
     210,   343,    -1,   154,   345,    -1,   154,   343,    -1,   367,
      -1,    -1,   507,    -1,    -1,   423,   508,   424,    -1,    -1,
     509,    -1,   507,   427,   509,    -1,   510,    -1,   508,   427,
     510,    -1,   511,    -1,   517,    -1,   520,    -1,   512,    -1,
     520,    -1,   966,   867,   513,    -1,   966,   389,   249,   513,
      -1,   513,   514,    -1,    -1,    76,   954,   515,    -1,   515,
      -1,   516,    -1,    66,   646,    -1,   231,   236,    -1,   236,
      -1,   364,   708,   537,    -1,   272,   195,   708,   537,    -1,
      60,   423,   891,   424,    -1,   103,   892,    -1,   285,   952,
     522,   525,   529,    -1,   105,    -1,   231,   105,    -1,   177,
     106,    -1,   177,   167,    -1,   206,   952,   518,    -1,   518,
     171,   519,    -1,   518,   131,   519,    -1,    -1,   104,    -1,
      77,    -1,   174,    -1,   333,    -1,    70,    -1,    22,    -1,
      76,   954,   521,    -1,   521,    -1,    60,   423,   891,   424,
     611,    -1,   364,   423,   523,   424,   708,   537,   611,    -1,
     364,   538,   611,    -1,   272,   195,   423,   523,   424,   708,
     537,   611,    -1,   272,   195,   538,   611,    -1,   130,   685,
     423,   526,   424,   708,   537,   528,   611,    -1,   147,   195,
     423,   523,   424,   285,   952,   522,   525,   529,   611,    -1,
     423,   523,   424,    -1,    -1,   524,    -1,   523,   427,   524,
      -1,   966,    -1,   216,   151,    -1,   216,   260,    -1,   216,
     323,    -1,    -1,   527,    -1,   526,   427,   527,    -1,   687,
     389,   718,    -1,   687,   389,   247,   423,   718,   424,    -1,
     386,   423,   891,   424,    -1,    -1,   530,    -1,   531,    -1,
     530,   531,    -1,   531,   530,    -1,    -1,   245,   369,   532,
      -1,   245,   108,   532,    -1,   229,    17,    -1,   295,    -1,
      51,    -1,   318,   236,    -1,   318,   103,    -1,   176,   423,
     951,   424,    -1,    -1,   389,   480,    -1,   389,   244,    -1,
     390,   244,    -1,    -1,   245,    71,   120,    -1,   245,    71,
     108,   303,    -1,   245,    71,   269,   303,    -1,    -1,   342,
     954,    -1,    -1,   371,   173,   342,   954,    -1,    -1,   371,
     173,   958,    -1,    83,   504,   340,   540,    31,   814,   544,
      -1,   952,   541,   534,   535,   536,    -1,   423,   542,   424,
      -1,    -1,   543,    -1,   542,   427,   543,    -1,   966,    -1,
     389,    96,    -1,   389,   229,    96,    -1,    -1,    83,   504,
     312,   952,   547,    -1,    24,   312,   952,   548,    -1,   548,
      -1,    -1,   549,    -1,   548,   549,    -1,    49,   551,    -1,
      95,    -1,   229,    95,    -1,   172,   550,   551,    -1,   217,
     551,    -1,   219,   551,    -1,   229,   217,    -1,   229,   219,
      -1,   257,    48,   646,    -1,   328,   434,   551,    -1,   294,
      -1,   294,   434,   551,    -1,    48,    -1,    -1,     4,    -1,
     415,     4,    -1,   965,    -1,   551,    -1,   552,   427,   551,
      -1,    83,   693,   554,   560,   197,   464,    -1,    83,   693,
     554,   560,   197,   464,   159,   555,   556,   558,    -1,   358,
      -1,    -1,   954,    -1,   954,   647,    -1,   178,   555,    -1,
      -1,   375,   555,    -1,   229,   375,    -1,   557,    -1,    -1,
     120,   560,   197,   464,   477,    -1,   120,   560,   197,   165,
     134,   464,   477,    -1,   275,    -1,    -1,    83,   342,   954,
     562,   213,   963,    -1,   258,   954,    -1,    -1,   120,   342,
     954,    -1,   120,   342,   165,   134,   954,    -1,    83,   136,
     954,   434,   565,    -1,    83,   136,   165,   231,   134,   954,
     434,   565,    -1,   565,   566,    -1,    -1,   306,   954,    -1,
     382,   464,    -1,   150,   464,    -1,    24,   136,   954,   369,
     568,    -1,   568,   569,    -1,    -1,   350,   464,    -1,    24,
     136,   954,   449,    21,   960,   621,    -1,    24,   136,   954,
     449,    54,   423,   867,    31,   867,   424,    -1,    24,   136,
     954,   449,    67,   646,    -1,    24,   136,   954,   449,    80,
     646,    -1,    24,   136,   954,   449,   118,   646,    -1,    24,
     136,   954,   449,   152,   671,    -1,    24,   136,   954,   449,
     560,   197,   954,    -1,    24,   136,   954,   449,   247,   718,
     717,    -1,    24,   136,   954,   449,   247,    62,   646,   371,
     956,    -1,    24,   136,   954,   449,   247,   140,   646,   371,
     956,    -1,    24,   136,   954,   449,   306,   954,    -1,    24,
     136,   954,   449,   340,   646,    -1,    24,   136,   954,   449,
     346,   308,   259,   646,    -1,    24,   136,   954,   449,   346,
     308,   112,   646,    -1,    24,   136,   954,   449,   346,   308,
     344,   646,    -1,    24,   136,   954,   449,   346,   308,    74,
     646,    -1,    24,   136,   954,   449,   312,   646,    -1,    24,
     136,   954,   449,   383,   646,    -1,    24,   136,   954,   449,
     147,   340,   646,    -1,    24,   136,   954,   449,   147,    96,
     392,   954,    -1,    24,   136,   954,   449,   315,   954,    -1,
      24,   136,   954,   449,   359,   646,    -1,    83,   147,    96,
     392,   954,   574,   577,    -1,   159,   555,    -1,   229,   159,
      -1,   375,   555,    -1,   229,   375,    -1,   572,    -1,   573,
     572,    -1,   573,    -1,    -1,   120,   147,    96,   392,   954,
     477,    -1,   120,   147,    96,   392,   165,   134,   954,   477,
      -1,    24,   147,    96,   392,   954,   574,   579,    -1,    24,
     147,    96,   392,   954,   573,    -1,   249,   423,   578,   424,
      -1,    -1,   582,    -1,   578,   427,   582,    -1,   249,   423,
     580,   424,    -1,   581,    -1,   580,   427,   581,    -1,   582,
      -1,   318,   582,    -1,    18,   582,    -1,   120,   583,    -1,
     583,   584,    -1,   968,    -1,   963,    -1,    83,   315,   954,
     586,   588,   147,    96,   392,   954,   577,    -1,   359,   963,
      -1,    -1,   382,   963,    -1,   382,   236,    -1,   587,    -1,
      -1,   120,   315,   954,   477,    -1,   120,   315,   165,   134,
     954,   477,    -1,    24,   315,   954,   587,   579,    -1,    24,
     315,   954,   587,    -1,    24,   315,   954,   579,    -1,    83,
     147,   340,   952,   592,   315,   954,   577,    -1,    83,   147,
     340,   165,   231,   134,   952,   592,   315,   954,   577,    -1,
     423,   593,   424,    -1,   423,   424,    -1,   594,    -1,   593,
     427,   594,    -1,   511,    -1,    24,   147,   340,   858,   474,
      -1,    83,   370,   215,   145,   597,   315,   954,   577,    -1,
      93,    -1,   370,    -1,   964,    -1,   120,   370,   215,   145,
     597,   315,   954,    -1,   120,   370,   215,   165,   134,   145,
     597,   315,   954,    -1,    24,   370,   215,   145,   597,   315,
     954,   579,    -1,    83,   354,   954,   601,   602,   245,   952,
     604,   607,   133,   276,   960,   423,   608,   424,    -1,    83,
      76,   354,   954,    20,   602,   245,   952,   610,   611,   145,
     121,   302,   607,   133,   276,   960,   423,   608,   424,    -1,
      40,    -1,    20,    -1,   184,   241,    -1,   603,    -1,   602,
     250,   603,    -1,   183,    -1,   108,    -1,   369,    -1,   369,
     241,   523,    -1,   357,    -1,   145,   605,   606,    -1,    -1,
     121,    -1,    -1,   302,    -1,   329,    -1,   385,   423,   891,
     424,    -1,    -1,   609,    -1,   608,   427,   609,    -1,    -1,
     962,    -1,     4,    -1,   963,    -1,   968,    -1,   150,   952,
      -1,    -1,    -1,   611,   612,    -1,   231,   105,    -1,   105,
      -1,   177,   167,    -1,   177,   106,    -1,   231,   373,    -1,
     120,   354,   954,   245,   952,   477,    -1,   120,   354,   165,
     134,   954,   245,   952,   477,    -1,    83,    33,   954,    60,
     423,   891,   424,   611,    -1,   120,    33,   954,   477,    -1,
      83,    21,   960,   621,   617,    -1,    83,    21,   960,   622,
      -1,    83,   247,   718,   617,    -1,    83,   359,   646,   617,
      -1,    83,   359,   646,    -1,    83,   359,   646,    31,   423,
     864,   424,    -1,    83,   359,   646,    31,   127,   423,   625,
     424,    -1,    83,   346,   308,   259,   646,   617,    -1,    83,
     346,   308,   112,   646,   617,    -1,    83,   346,   308,   344,
     646,   617,    -1,    83,   346,   308,    74,   646,   617,    -1,
      83,    67,   646,   617,    -1,    83,    67,   646,   150,   646,
      -1,   423,   618,   424,    -1,   619,    -1,   618,   427,   619,
      -1,   968,   410,   620,    -1,   968,    -1,   702,    -1,   972,
      -1,   918,    -1,   551,    -1,   963,    -1,   423,   923,   424,
      -1,   423,   416,   424,    -1,   423,   623,   424,    -1,   624,
      -1,   623,   427,   624,    -1,     3,   410,   620,    -1,   626,
      -1,    -1,   963,    -1,   626,   427,   963,    -1,    24,   359,
     646,    18,   376,   963,    -1,    24,   359,   646,    18,   376,
     963,    40,   963,    -1,    24,   359,   646,    18,   376,   963,
      20,   963,    -1,    83,   247,    62,   646,   631,   145,   359,
     867,   371,   956,   632,    31,   629,    -1,   630,    -1,   629,
     427,   630,    -1,   247,   962,   718,   633,   634,    -1,   247,
     962,   718,   717,   633,   634,    -1,   152,   962,   960,   694,
      -1,   152,   962,   423,   923,   424,   960,   694,    -1,   333,
     867,    -1,   103,    -1,    -1,   140,   646,    -1,    -1,   145,
     308,    -1,   145,   251,    48,   646,    -1,    -1,   282,    -1,
      -1,    83,   247,   140,   646,   371,   956,    -1,    24,   247,
     140,   646,   371,   956,    18,   629,    -1,    24,   247,   140,
     646,   371,   956,   120,   637,    -1,   638,    -1,   637,   427,
     638,    -1,   247,   962,   423,   923,   424,    -1,   152,   962,
     423,   923,   424,    -1,   120,   247,    62,   646,   371,   956,
     477,    -1,   120,   247,    62,   165,   134,   646,   371,   956,
     477,    -1,   120,   247,   140,   646,   371,   956,   477,    -1,
     120,   247,   140,   165,   134,   646,   371,   956,   477,    -1,
     120,   257,    48,   953,   477,    -1,   281,   257,    48,   953,
     350,   954,    -1,   120,   644,   165,   134,   645,   477,    -1,
     120,   644,   645,   477,    -1,   340,    -1,   312,    -1,   383,
      -1,   173,    -1,   147,   340,    -1,   359,    -1,   118,    -1,
      67,    -1,    80,    -1,   306,    -1,   136,    -1,   346,   308,
     259,    -1,   346,   308,   112,    -1,   346,   308,   344,    -1,
     346,   308,    74,    -1,   646,    -1,   645,   427,   646,    -1,
     966,    -1,   966,   647,    -1,   425,   957,    -1,   647,   425,
     957,    -1,   357,   825,   859,   649,   477,    -1,    79,   164,
      -1,   294,   164,    -1,    -1,    69,   245,   651,   646,   191,
     652,    -1,    69,   245,    21,   960,   621,   191,   652,    -1,
      69,   245,   152,   960,   694,   191,   652,    -1,    69,   245,
     247,   718,   717,   191,   652,    -1,    69,   245,    76,   954,
     245,   646,   191,   652,    -1,    69,   245,   304,   954,   245,
     646,   191,   652,    -1,    69,   245,   304,   954,   191,   652,
      -1,    69,   245,   354,   954,   245,   646,   191,   652,    -1,
      69,   245,   247,    62,   646,   371,   956,   191,   652,    -1,
      69,   245,   247,   140,   646,   371,   956,   191,   652,    -1,
      69,   245,   198,   240,   551,   191,   652,    -1,    69,   245,
      54,   423,   867,    31,   867,   424,   191,   652,    -1,    69,
     245,   560,   197,   646,   191,   652,    -1,    69,   245,   346,
     308,   259,   646,   191,   652,    -1,    69,   245,   346,   308,
     112,   646,   191,   652,    -1,    69,   245,   346,   308,   344,
     646,   191,   652,    -1,    69,   245,   346,   308,    74,   646,
     191,   652,    -1,    68,    -1,    97,    -1,   306,    -1,   173,
      -1,   312,    -1,   340,    -1,   118,    -1,   359,    -1,   383,
      -1,    67,    -1,    80,    -1,   342,    -1,   136,    -1,   300,
      -1,   147,   340,    -1,   315,    -1,   147,    96,   392,    -1,
     963,    -1,   236,    -1,   310,   196,   654,   245,   655,   646,
     191,   656,    -1,   310,   196,   654,   245,    21,   960,   621,
     191,   656,    -1,   310,   196,   654,   245,   152,   960,   694,
     191,   656,    -1,   310,   196,   654,   245,   198,   240,   551,
     191,   656,    -1,   310,   196,   654,   245,   560,   197,   646,
     191,   656,    -1,   145,   464,    -1,    -1,    68,    -1,   147,
     340,    -1,   306,    -1,   312,    -1,   340,    -1,   118,    -1,
     359,    -1,   383,    -1,   963,    -1,   236,    -1,   141,   658,
      -1,   222,   658,    -1,   811,    -1,   659,   811,    -1,   228,
     660,   811,    -1,   273,   660,   811,    -1,   142,   660,   811,
      -1,   199,   660,   811,    -1,    15,   965,   660,   811,    -1,
     287,   965,   660,   811,    -1,   965,   660,   811,    -1,    22,
     660,   811,    -1,   148,   660,   811,    -1,   148,   965,   660,
     811,    -1,   148,    22,   660,   811,    -1,    39,   660,   811,
      -1,    39,   965,   660,   811,    -1,    39,    22,   660,   811,
      -1,   150,    -1,   170,    -1,   659,    -1,    -1,   155,   663,
     245,   666,   350,   667,   669,    -1,   298,   663,   245,   666,
     150,   667,   477,    -1,   298,   155,   248,   145,   663,   245,
     666,   150,   667,   477,    -1,   664,    -1,    22,    -1,    22,
     274,    -1,    22,   423,   523,   424,    -1,    22,   274,   423,
     523,   424,    -1,   665,    -1,   664,   427,   665,    -1,   311,
     522,    -1,   285,   522,    -1,    83,   522,    -1,   966,   522,
      -1,   951,    -1,   340,   951,    -1,   312,   951,    -1,   147,
      96,   392,   953,    -1,   147,   315,   953,    -1,   152,   670,
      -1,    97,   953,    -1,   197,   953,    -1,   198,   240,   552,
      -1,   306,   953,    -1,   342,   953,    -1,    22,   341,   170,
     306,   953,    -1,    22,   313,   170,   306,   953,    -1,    22,
     153,   170,   306,   953,    -1,   668,    -1,   667,   427,   668,
      -1,   964,    -1,   158,   964,    -1,   389,   155,   248,    -1,
      -1,   671,    -1,   670,   427,   671,    -1,   960,   694,    -1,
     155,   664,   350,   953,   674,   675,    -1,   298,   664,   150,
     953,   675,   477,    -1,   298,    19,   248,   145,   664,   150,
     953,   675,   477,    -1,   389,    19,   248,    -1,    -1,   156,
      48,   964,    -1,    -1,    24,   103,   274,   677,   679,    -1,
     677,   678,    -1,    -1,   170,   306,   953,    -1,   145,   300,
     953,    -1,   145,   370,   953,    -1,   155,   663,   245,   680,
     350,   667,   669,    -1,   298,   663,   245,   680,   150,   667,
     477,    -1,   298,   155,   248,   145,   663,   245,   680,   150,
     667,   477,    -1,   341,    -1,   153,    -1,   313,    -1,    83,
     682,   173,   683,   684,   245,   952,   685,   423,   686,   424,
     481,   536,   862,    -1,   364,    -1,    -1,    73,    -1,    -1,
     958,    -1,    -1,   371,   956,    -1,    -1,   687,    -1,   686,
     427,   687,    -1,   966,   688,   689,   690,   691,    -1,   894,
     688,   689,   690,   691,    -1,   423,   891,   424,   688,   689,
     690,   691,    -1,    66,   646,    -1,    -1,   646,    -1,   371,
     646,    -1,    -1,    32,    -1,   111,    -1,    -1,   407,    -1,
     408,    -1,    -1,    83,   693,   152,   960,   696,   297,   701,
     704,   708,    -1,    83,   693,   152,   960,   696,   297,   340,
     423,   710,   424,   704,   708,    -1,    83,   693,   152,   960,
     696,   704,   708,    -1,   250,   291,    -1,    -1,   423,   695,
     424,    -1,   423,   424,    -1,   698,    -1,   695,   427,   698,
      -1,   423,   697,   424,    -1,   423,   424,    -1,   703,    -1,
     697,   427,   703,    -1,   699,   700,   702,    -1,   700,   699,
     702,    -1,   700,   702,    -1,   699,   702,    -1,   702,    -1,
     170,    -1,   252,    -1,   180,    -1,   170,   252,    -1,   379,
      -1,   967,    -1,   702,    -1,   867,    -1,   967,   647,   418,
     359,    -1,   319,   967,   647,   418,   359,    -1,   698,    -1,
     698,   103,   891,    -1,   698,   410,   891,    -1,   706,    -1,
     704,   706,    -1,    50,   245,   236,   181,    -1,   297,   236,
     245,   236,   181,    -1,   334,    -1,   168,    -1,   326,    -1,
     384,    -1,   137,   310,   107,    -1,   137,   310,   190,    -1,
     310,   107,    -1,   310,   190,    -1,    82,   551,    -1,   303,
     551,    -1,   466,    -1,    31,   707,    -1,   197,   464,    -1,
     388,    -1,   705,    -1,   963,    -1,   963,   427,   963,    -1,
     389,   617,    -1,    -1,   700,   702,    -1,   709,    -1,   710,
     427,   709,    -1,    24,   152,   671,   712,   713,    -1,   705,
      -1,   712,   705,    -1,   295,    -1,    -1,   120,   152,   960,
     694,   477,    -1,   120,   152,   165,   134,   960,   694,   477,
      -1,   120,    21,   960,   621,   477,    -1,   120,    21,   165,
     134,   960,   621,   477,    -1,   120,   247,   718,   717,   477,
      -1,   120,   247,   165,   134,   718,   717,   477,    -1,   423,
     867,   424,    -1,   423,   867,   427,   867,   424,    -1,   423,
     230,   427,   867,   424,    -1,   423,   867,   427,   230,   424,
      -1,   915,    -1,   966,   425,   718,    -1,   116,   720,    -1,
     721,    -1,   720,   721,    -1,   963,    -1,   197,   464,    -1,
      83,    54,   423,   867,    31,   867,   424,   389,   152,   671,
     723,    -1,    83,    54,   423,   867,    31,   867,   424,   390,
     152,   723,    -1,    83,    54,   423,   867,    31,   867,   424,
     389,   180,   723,    -1,    31,   169,    -1,    31,    34,    -1,
      -1,   120,    54,   725,   423,   867,    31,   867,   424,   477,
      -1,   165,   134,    -1,    -1,   286,   727,   952,   728,    -1,
     286,   339,   954,   728,    -1,   286,    97,   954,   728,    -1,
     173,    -1,   340,    -1,   146,    -1,    -1,    24,    21,   960,
     621,   289,   350,   954,    -1,    24,    67,   646,   289,   350,
     954,    -1,    24,    80,   646,   289,   350,   954,    -1,    24,
      97,   955,   289,   350,   955,    -1,    24,   152,   671,   289,
     350,   954,    -1,    24,   158,   964,   289,   350,   964,    -1,
      24,   560,   197,   954,   289,   350,   954,    -1,    24,   247,
      62,   646,   371,   956,   289,   350,   954,    -1,    24,   247,
     140,   646,   371,   956,   289,   350,   954,    -1,    24,   306,
     954,   289,   350,   954,    -1,    24,   340,   858,   289,   350,
     954,    -1,    24,   312,   952,   289,   350,   954,    -1,    24,
     383,   952,   289,   350,   954,    -1,    24,   173,   952,   289,
     350,   954,    -1,    24,   147,   340,   858,   289,   350,   954,
      -1,    24,   340,   858,   289,   730,   954,   350,   954,    -1,
      24,   147,   340,   858,   289,   730,   954,   350,   954,    -1,
      24,   354,   954,   245,   952,   289,   350,   954,    -1,    24,
     300,   964,   289,   350,   964,    -1,    24,   370,   964,   289,
     350,   964,    -1,    24,   342,   954,   289,   350,   954,    -1,
      24,   342,   954,   318,   480,    -1,    24,   342,   954,   293,
     480,    -1,    24,   346,   308,   259,   646,   289,   350,   954,
      -1,    24,   346,   308,   112,   646,   289,   350,   954,    -1,
      24,   346,   308,   344,   646,   289,   350,   954,    -1,    24,
     346,   308,    74,   646,   289,   350,   954,    -1,    24,   359,
     646,   289,   350,   954,    -1,    24,   359,   646,   289,    37,
     954,   350,   954,   477,    -1,    68,    -1,    -1,   318,    96,
      -1,    -1,    24,    21,   960,   621,   318,   306,   954,    -1,
      24,    67,   646,   318,   306,   954,    -1,    24,    80,   646,
     318,   306,   954,    -1,    24,   118,   646,   318,   306,   954,
      -1,    24,   136,   646,   318,   306,   954,    -1,    24,   152,
     671,   318,   306,   954,    -1,    24,   247,   718,   717,   318,
     306,   954,    -1,    24,   247,    62,   646,   371,   956,   318,
     306,   954,    -1,    24,   247,   140,   646,   371,   956,   318,
     306,   954,    -1,    24,   340,   858,   318,   306,   954,    -1,
      24,   346,   308,   259,   646,   318,   306,   954,    -1,    24,
     346,   308,   112,   646,   318,   306,   954,    -1,    24,   346,
     308,   344,   646,   318,   306,   954,    -1,    24,   346,   308,
      74,   646,   318,   306,   954,    -1,    24,   312,   952,   318,
     306,   954,    -1,    24,   383,   952,   318,   306,   954,    -1,
      24,   147,   340,   858,   318,   306,   954,    -1,    24,   359,
     646,   318,   306,   954,    -1,    24,    21,   960,   621,   258,
     350,   964,    -1,    24,    67,   646,   258,   350,   964,    -1,
      24,    80,   646,   258,   350,   964,    -1,    24,    97,   955,
     258,   350,   964,    -1,    24,   118,   646,   258,   350,   964,
      -1,    24,   152,   671,   258,   350,   964,    -1,    24,   560,
     197,   954,   258,   350,   964,    -1,    24,   198,   240,   551,
     258,   350,   964,    -1,    24,   247,   718,   717,   258,   350,
     964,    -1,    24,   247,    62,   646,   371,   956,   258,   350,
     964,    -1,    24,   247,   140,   646,   371,   956,   258,   350,
     964,    -1,    24,   306,   954,   258,   350,   964,    -1,    24,
     359,   646,   258,   350,   964,    -1,    24,   342,   954,   258,
     350,   964,    -1,    24,   346,   308,   112,   646,   258,   350,
     964,    -1,    24,   346,   308,    74,   646,   258,   350,   964,
      -1,    24,   147,    96,   392,   954,   258,   350,   964,    -1,
      24,   315,   954,   258,   350,   964,    -1,    83,   693,   304,
     954,    31,   245,   739,   350,   952,   862,   116,   740,   735,
      -1,   232,    -1,   737,    -1,   423,   736,   424,    -1,   736,
     426,   738,    -1,   738,    -1,   814,    -1,   792,    -1,   803,
      -1,   797,    -1,   742,    -1,   737,    -1,    -1,   311,    -1,
     369,    -1,   108,    -1,   183,    -1,   184,    -1,    23,    -1,
      -1,   120,   304,   954,   245,   952,   477,    -1,   120,   304,
     165,   134,   954,   245,   952,   477,    -1,   233,   966,   743,
      -1,   427,   963,    -1,    -1,   208,   966,    -1,   366,   966,
      -1,   366,   416,    -1,    14,   747,    -1,    41,   747,   750,
      -1,   328,   352,   750,    -1,    71,   747,    -1,   126,   747,
      -1,   301,   747,    -1,   305,   966,    -1,   288,   305,   966,
      -1,   288,   966,    -1,   301,   747,   350,   305,   966,    -1,
     301,   747,   350,   966,    -1,   270,   352,   963,    -1,    71,
     271,   963,    -1,   301,   271,   963,    -1,   391,    -1,   352,
      -1,    -1,   193,   205,   460,    -1,   279,   246,    -1,   279,
     393,    -1,   105,    -1,   231,   105,    -1,   748,    -1,   749,
     427,   748,    -1,   749,   748,    -1,   749,    -1,    -1,    83,
     504,   383,   952,   522,    31,   814,   752,    -1,    83,   250,
     291,   504,   383,   952,   522,    31,   814,   752,    -1,   389,
      60,   248,    -1,   389,    52,    60,   248,    -1,   389,   210,
      60,   248,    -1,    -1,   209,   959,    -1,    83,    97,   955,
     434,   755,    -1,   755,   756,    -1,    -1,   342,   757,   954,
      -1,   342,   757,   103,    -1,   213,   757,   963,    -1,   213,
     757,   103,    -1,   344,   757,   954,    -1,   344,   757,   103,
      -1,   124,   757,   963,    -1,   124,   757,   962,    -1,   124,
     757,   103,    -1,   200,   757,   963,    -1,   200,   757,   103,
      -1,   201,   757,   963,    -1,   201,   757,   103,    -1,    75,
     207,   757,   965,    -1,   258,   757,   954,    -1,   258,   757,
     103,    -1,   410,    -1,    -1,    24,    97,   955,   434,   760,
      -1,    24,    97,   955,   318,   342,   954,    -1,    24,    97,
     955,   466,    -1,   760,   761,    -1,    -1,    75,   207,   757,
     965,    -1,   120,    97,   955,    -1,   120,    97,   165,   134,
     955,    -1,    83,   118,   646,   765,   867,   513,    -1,    24,
     118,   646,   476,    -1,    24,   118,   646,   120,   231,   236,
      -1,    24,   118,   646,   318,   231,   236,    -1,    24,   118,
     646,    18,   520,    -1,    24,   118,   646,   120,    76,   954,
     477,    -1,    31,    -1,    -1,    24,   346,   308,   112,   646,
     617,    -1,    24,   346,   308,    74,   646,    18,   215,   145,
     953,   389,   645,    -1,    24,   346,   308,    74,   646,    24,
     215,   145,   953,   389,   645,    -1,    24,   346,   308,    74,
     646,    24,   215,   291,   646,   389,   646,    -1,    24,   346,
     308,    74,   646,    24,   215,   145,   953,   291,   646,   389,
     646,    -1,    24,   346,   308,    74,   646,   120,   215,   145,
     953,    -1,    24,   346,   308,    74,   646,   120,   215,   165,
     134,   145,   953,    -1,    83,   631,    80,   646,   145,   963,
     350,   963,   150,   646,    -1,    64,   776,   952,   770,    -1,
      64,   776,    -1,    64,   776,   958,   245,   952,    -1,   371,
     958,    -1,    -1,   372,   777,   778,   776,    -1,   372,   777,
     778,   776,   952,    -1,   372,   777,   778,   776,   774,    -1,
     372,   423,   772,   424,    -1,   372,   423,   772,   424,   952,
     779,    -1,   773,    -1,   772,   427,   773,    -1,   775,    -1,
     381,    -1,   149,    -1,   151,    -1,   775,   776,    -1,   775,
     776,   952,   779,    -1,    27,    -1,    26,    -1,   381,    -1,
      -1,   151,    -1,    -1,   149,    -1,    -1,   423,   953,   424,
      -1,    -1,   135,   781,    -1,   135,   775,   776,   781,    -1,
     135,   381,   781,    -1,   135,   423,   782,   424,   781,    -1,
     814,    -1,   792,    -1,   803,    -1,   797,    -1,   810,    -1,
     539,    -1,   789,    -1,   783,    -1,   782,   427,   783,    -1,
     784,   785,    -1,   966,    -1,   775,    -1,   381,    -1,   461,
      -1,   551,    -1,    -1,   270,   954,   787,    31,   788,    -1,
     423,   923,   424,    -1,    -1,   814,    -1,   792,    -1,   803,
      -1,   797,    -1,   133,   954,   790,    -1,    83,   504,   340,
     540,    31,   133,   954,   790,    -1,   423,   920,   424,    -1,
      -1,    99,   954,    -1,    99,   270,   954,    -1,    99,    22,
      -1,    99,   270,    22,    -1,   822,   183,   189,   952,   793,
     796,    -1,   814,    -1,   423,   794,   424,   814,    -1,   103,
     377,    -1,   795,    -1,   794,   427,   795,    -1,   966,   944,
      -1,   296,   949,    -1,    -1,   822,   108,   150,   860,   798,
     863,   796,    -1,   371,   851,    -1,    -1,   214,   825,   859,
     800,   802,    -1,   170,   801,   220,    -1,    -1,    16,   320,
      -1,   302,   320,    -1,   302,   132,    -1,   320,   369,   132,
      -1,   320,    -1,   320,   302,   132,    -1,   132,    -1,    16,
     132,    -1,   235,    -1,    -1,   822,   369,   860,   318,   804,
     850,   863,   796,    -1,   805,    -1,   804,   427,   805,    -1,
     806,    -1,   807,    -1,   808,   410,   946,    -1,   423,   809,
     424,   410,   948,    -1,   966,   944,    -1,   808,    -1,   809,
     427,   808,    -1,   102,   811,   812,    94,   813,   145,   814,
      -1,   954,    -1,    -1,   812,   229,   307,    -1,   812,   307,
      -1,   812,    44,    -1,   812,   182,    -1,    -1,   389,   162,
      -1,   390,   162,    -1,   816,    -1,   815,    -1,   423,   816,
     424,    -1,   423,   815,   424,    -1,   818,    -1,   817,   829,
      -1,   817,   828,   844,   833,    -1,   817,   828,   832,   845,
      -1,   819,   817,    -1,   819,   817,   829,    -1,   819,   817,
     828,   844,   833,    -1,   819,   817,   828,   832,   845,    -1,
     818,    -1,   815,    -1,   311,   827,   949,   823,   850,   862,
     842,   843,   903,    -1,   849,    -1,   340,   858,    -1,   817,
     363,   826,   817,    -1,   817,   187,   826,   817,    -1,   817,
     129,   826,   817,    -1,   389,   820,    -1,   389,   283,   820,
      -1,   821,    -1,   820,   427,   821,    -1,   954,   779,    31,
     423,   788,   424,    -1,   819,    -1,    -1,   189,   824,    -1,
      -1,   345,   825,   952,    -1,   343,   825,   952,    -1,   210,
     345,   825,   952,    -1,   210,   343,   825,   952,    -1,   154,
     345,   825,   952,    -1,   154,   343,   825,   952,    -1,   367,
     825,   952,    -1,   340,   952,    -1,   952,    -1,   340,    -1,
      -1,    22,    -1,   115,    -1,    -1,   115,    -1,   115,   245,
     423,   920,   424,    -1,    22,    -1,    -1,   829,    -1,    -1,
     251,    48,   830,    -1,   831,    -1,   830,   427,   831,    -1,
     891,   371,   918,   691,    -1,   891,   690,   691,    -1,   834,
     835,    -1,   835,   834,    -1,   834,    -1,   835,    -1,   832,
      -1,    -1,   207,   836,    -1,   207,   836,   427,   837,    -1,
     141,   841,   838,   840,   246,    -1,   243,   837,    -1,   243,
     839,   840,    -1,   891,    -1,    22,    -1,   891,    -1,   965,
      -1,   423,   891,   424,    -1,    -1,   893,    -1,   302,    -1,
     303,    -1,   142,    -1,   228,    -1,   158,    48,   920,    -1,
      -1,   160,   891,    -1,    -1,   846,    -1,   145,   279,   246,
      -1,   844,    -1,    -1,   847,    -1,   846,   847,    -1,   145,
     369,   848,   802,    -1,   145,   320,   848,   802,    -1,   241,
     951,    -1,    -1,   377,   948,    -1,   849,   427,   948,    -1,
     150,   851,    -1,    -1,   852,    -1,   851,   427,   852,    -1,
     858,    -1,   858,   854,    -1,   861,    -1,   861,   854,    -1,
     861,    31,   423,   865,   424,    -1,   861,    31,   966,   423,
     865,   424,    -1,   861,   966,   423,   865,   424,    -1,   815,
      -1,   815,   854,    -1,   853,    -1,   423,   853,   424,   854,
      -1,   423,   853,   424,    -1,   852,    84,   194,   852,    -1,
     852,   855,   194,   852,   857,    -1,   852,   194,   852,   857,
      -1,   852,   226,   855,   194,   852,    -1,   852,   226,   194,
     852,    -1,    31,   966,   423,   953,   424,    -1,    31,   966,
      -1,   966,   423,   953,   424,    -1,   966,    -1,   151,   856,
      -1,   204,   856,    -1,   299,   856,    -1,   179,    -1,   253,
      -1,    -1,   371,   423,   953,   424,    -1,   245,   891,    -1,
     952,    -1,   952,   416,    -1,   246,   952,    -1,   246,   423,
     952,   424,    -1,   858,    -1,   859,   427,   858,    -1,   858,
      -1,   858,   966,    -1,   858,    31,   966,    -1,   894,    -1,
     386,   891,    -1,    -1,   386,   891,    -1,   386,    86,   241,
     811,    -1,    -1,   865,    -1,    -1,   866,    -1,   865,   427,
     866,    -1,   966,   867,   478,    -1,   869,   868,    -1,   319,
     869,   868,    -1,   869,    30,   421,   962,   422,    -1,   319,
     869,    30,   421,   962,   422,    -1,   869,    30,    -1,   319,
     869,    30,    -1,   868,   421,   422,    -1,   868,   421,   962,
     422,    -1,    -1,   871,    -1,   873,    -1,   875,    -1,   879,
      -1,   886,    -1,   887,   889,    -1,   887,   423,   962,   424,
     889,    -1,   873,    -1,   876,    -1,   880,    -1,   886,    -1,
     967,   872,    -1,   967,   647,   872,    -1,   423,   920,   424,
      -1,    -1,   185,    -1,   186,    -1,   324,    -1,    43,    -1,
     280,    -1,   143,   874,    -1,   119,   268,    -1,   101,   872,
      -1,   100,   872,    -1,   239,   872,    -1,    46,    -1,   423,
     962,   424,    -1,    -1,   877,    -1,   878,    -1,   877,    -1,
     878,    -1,    45,   884,   423,   920,   424,    -1,    45,   884,
      -1,   881,    -1,   882,    -1,   881,    -1,   882,    -1,   883,
     423,   962,   424,   885,    -1,   883,   885,    -1,    58,   884,
      -1,    57,   884,    -1,   378,    -1,   225,    58,   884,    -1,
     225,    57,   884,    -1,   227,   884,    -1,   380,    -1,    -1,
      58,   318,   966,    -1,    -1,   349,   423,   962,   424,   888,
      -1,   349,   888,    -1,   348,   423,   962,   424,   888,    -1,
     348,   888,    -1,   188,    -1,   409,   406,    -1,   390,   348,
     406,    -1,    -1,   404,    -1,   221,    -1,    98,    -1,   163,
      -1,   218,    -1,   890,    -1,   404,   350,   221,    -1,    98,
     350,   163,    -1,    98,   350,   218,    -1,    98,   350,   890,
      -1,   163,   350,   218,    -1,   163,   350,   890,    -1,   218,
     350,   890,    -1,    -1,   309,    -1,   309,   423,   962,   424,
      -1,   893,    -1,   891,    11,   867,    -1,   891,    66,   646,
      -1,   891,    36,   348,   406,   891,    -1,   414,   891,    -1,
     415,   891,    -1,   891,   414,   891,    -1,   891,   415,   891,
      -1,   891,   416,   891,    -1,   891,   417,   891,    -1,   891,
     418,   891,    -1,   891,   419,   891,    -1,   891,   411,   891,
      -1,   891,   412,   891,    -1,   891,   410,   891,    -1,   891,
     917,   891,    -1,   917,   891,    -1,   891,   917,    -1,   891,
      28,   891,    -1,   891,   250,   891,    -1,   231,   891,    -1,
     891,   206,   891,    -1,   891,   206,   891,   128,   891,    -1,
     891,   231,   206,   891,    -1,   891,   231,   206,   891,   128,
     891,    -1,   891,   166,   891,    -1,   891,   166,   891,   128,
     891,    -1,   891,   231,   166,   891,    -1,   891,   231,   166,
     891,   128,   891,    -1,   891,   322,   350,   891,    -1,   891,
     322,   350,   891,   128,   891,    -1,   891,   231,   322,   350,
     891,    -1,   891,   231,   322,   350,   891,   128,   891,    -1,
     891,   191,   236,    -1,   891,   192,    -1,   891,   191,   231,
     236,    -1,   891,   234,    -1,   913,   255,   913,    -1,   891,
     191,   356,    -1,   891,   191,   231,   356,    -1,   891,   191,
     139,    -1,   891,   191,   231,   139,    -1,   891,   191,   365,
      -1,   891,   191,   231,   365,    -1,   891,   191,   115,   150,
     891,    -1,   891,   191,   231,   115,   150,   891,    -1,   891,
     191,   241,   423,   923,   424,    -1,   891,   191,   231,   241,
     423,   923,   424,    -1,   891,    42,   945,   892,    28,   892,
      -1,   891,   231,    42,   945,   892,    28,   892,    -1,   891,
      42,   337,   892,    28,   892,    -1,   891,   231,    42,   337,
     892,    28,   892,    -1,   891,   170,   935,    -1,   891,   231,
     170,   935,    -1,   891,   919,   914,   815,    -1,   891,   919,
     914,   423,   891,   424,    -1,   364,   815,    -1,   891,   191,
     117,    -1,   891,   191,   231,   117,    -1,   893,    -1,   892,
      11,   867,    -1,   414,   892,    -1,   415,   892,    -1,   892,
     414,   892,    -1,   892,   415,   892,    -1,   892,   416,   892,
      -1,   892,   417,   892,    -1,   892,   418,   892,    -1,   892,
     419,   892,    -1,   892,   411,   892,    -1,   892,   412,   892,
      -1,   892,   410,   892,    -1,   892,   917,   892,    -1,   917,
     892,    -1,   892,   917,    -1,   892,   191,   115,   150,   892,
      -1,   892,   191,   231,   115,   150,   892,    -1,   892,   191,
     241,   423,   923,   424,    -1,   892,   191,   231,   241,   423,
     923,   424,    -1,   892,   191,   117,    -1,   892,   191,   231,
     117,    -1,   941,    -1,   961,    -1,    10,   944,    -1,   423,
     891,   424,   944,    -1,   936,    -1,   894,    -1,   815,    -1,
     134,   815,    -1,    30,   815,    -1,    30,   924,    -1,   913,
      -1,   960,   423,   424,   906,    -1,   960,   423,   921,   424,
     906,    -1,   960,   423,   379,   922,   424,   906,    -1,   960,
     423,   921,   427,   379,   922,   424,   906,    -1,   960,   423,
     921,   829,   424,   906,    -1,   960,   423,    22,   921,   828,
     424,   906,    -1,   960,   423,   115,   921,   828,   424,   906,
      -1,   960,   423,   416,   424,   906,    -1,    88,    -1,    91,
      -1,    91,   423,   962,   424,    -1,    92,    -1,    92,   423,
     962,   424,    -1,   211,    -1,   211,   423,   962,   424,    -1,
     212,    -1,   212,   423,   962,   424,    -1,    89,    -1,    93,
      -1,   317,    -1,   370,    -1,    87,    -1,    90,    -1,    54,
     423,   891,    31,   867,   424,    -1,   138,   423,   926,   424,
      -1,   256,   423,   928,   424,    -1,   266,   423,   930,   424,
      -1,   336,   423,   931,   424,    -1,   353,   423,   891,    31,
     867,   424,    -1,   355,   423,    47,   934,   424,    -1,   355,
     423,   202,   934,   424,    -1,   355,   423,   351,   934,   424,
      -1,   355,   423,   934,   424,    -1,   237,   423,   891,   427,
     891,   424,    -1,    65,   423,   920,   424,    -1,   157,   423,
     920,   424,    -1,   203,   423,   920,   424,    -1,   396,   423,
     920,   424,    -1,   397,   423,   223,   968,   424,    -1,   397,
     423,   223,   968,   427,   897,   424,    -1,   397,   423,   223,
     968,   427,   920,   424,    -1,   397,   423,   223,   968,   427,
     897,   427,   920,   424,    -1,   398,   423,   893,   902,   424,
      -1,   399,   423,   898,   424,    -1,   400,   423,   900,   891,
     901,   424,    -1,   401,   423,   223,   968,   424,    -1,   401,
     423,   223,   968,   427,   891,   424,    -1,   402,   423,   891,
     427,   895,   896,   424,    -1,   403,   423,   900,   891,    31,
     869,   424,    -1,   382,   891,    -1,   382,   229,   376,    -1,
     427,   327,   405,    -1,   427,   327,   229,    -1,   427,   327,
     229,   376,    -1,    -1,   395,   423,   898,   424,    -1,   899,
      -1,   898,   427,   899,    -1,   891,    31,   968,    -1,   891,
      -1,   117,    -1,    78,    -1,   269,   387,    -1,   335,   387,
      -1,    -1,   262,   893,    -1,   262,   893,    48,   284,    -1,
     262,    48,   284,   893,    -1,   262,    48,   284,   893,    48,
     284,    -1,   388,   904,    -1,    -1,   905,    -1,   904,   427,
     905,    -1,   966,    31,   907,    -1,   254,   907,    -1,   254,
     966,    -1,    -1,   423,   908,   909,   828,   910,   424,    -1,
     966,    -1,    -1,   261,    48,   920,    -1,    -1,   278,   911,
      -1,   303,   911,    -1,    -1,   912,    -1,    42,   912,    28,
     912,    -1,   360,   267,    -1,   360,   144,    -1,    86,   302,
      -1,   891,   267,    -1,   891,   144,    -1,   302,   423,   920,
     424,    -1,   302,   423,   424,    -1,   423,   920,   427,   891,
     424,    -1,    29,    -1,   325,    -1,    22,    -1,     8,    -1,
     916,    -1,   414,    -1,   415,    -1,   416,    -1,   417,    -1,
     418,    -1,   419,    -1,   411,    -1,   412,    -1,   410,    -1,
       8,    -1,   247,   423,   718,   424,    -1,   915,    -1,   247,
     423,   718,   424,    -1,   915,    -1,   247,   423,   718,   424,
      -1,   206,    -1,   231,   206,    -1,   166,    -1,   231,   166,
      -1,   891,    -1,   920,   427,   891,    -1,   922,    -1,   921,
     427,   922,    -1,   891,    -1,   700,    13,   891,    -1,   867,
      -1,   923,   427,   867,    -1,   421,   920,   422,    -1,   421,
     925,   422,    -1,   421,   422,    -1,   924,    -1,   925,   427,
     924,    -1,   927,   150,   891,    -1,    -1,     3,    -1,   404,
      -1,   221,    -1,    98,    -1,   163,    -1,   218,    -1,   309,
      -1,   963,    -1,   891,   929,   932,   933,    -1,   891,   929,
     932,    -1,   264,   891,    -1,   892,   170,   892,    -1,    -1,
     891,   932,   933,    -1,   891,   933,   932,    -1,   891,   932,
      -1,   891,   933,    -1,   920,    -1,    -1,   150,   891,    -1,
     145,   891,    -1,   891,   150,   920,    -1,   150,   920,    -1,
     920,    -1,   815,    -1,   423,   920,   424,    -1,    53,   940,
     937,   939,   126,    -1,   938,    -1,   937,   938,    -1,   385,
     891,   347,   891,    -1,   122,   891,    -1,    -1,   891,    -1,
      -1,   966,    -1,   966,   943,    -1,   425,   957,    -1,   425,
     416,    -1,   421,   891,   422,    -1,   421,   891,   428,   891,
     422,    -1,   942,    -1,   943,   942,    -1,    -1,   944,   942,
      -1,    35,    -1,    -1,   891,    -1,   103,    -1,   946,    -1,
     947,   427,   946,    -1,   423,   947,   424,    -1,   950,    -1,
     949,   427,   950,    -1,   891,    31,   968,    -1,   891,     3,
      -1,   891,    -1,   416,    -1,   952,    -1,   951,   427,   952,
      -1,   966,    -1,   966,   943,    -1,   954,    -1,   953,   427,
     954,    -1,   966,    -1,   966,    -1,   966,    -1,   968,    -1,
     966,    -1,   963,    -1,   967,    -1,   966,   943,    -1,   962,
      -1,     4,    -1,   963,    -1,     6,    -1,     7,    -1,   960,
     963,    -1,   960,   423,   921,   424,   963,    -1,   870,   963,
      -1,   887,   963,   889,    -1,   887,   423,   962,   424,   963,
     889,    -1,   356,    -1,   139,    -1,   236,    -1,     9,    -1,
       5,    -1,   966,    -1,   962,    -1,   414,   962,    -1,   415,
     962,    -1,     3,    -1,   969,    -1,   970,    -1,     3,    -1,
     969,    -1,   971,    -1,     3,    -1,   969,    -1,   970,    -1,
     971,    -1,   972,    -1,    14,    -1,    15,    -1,    16,    -1,
      17,    -1,    18,    -1,    19,    -1,    20,    -1,    21,    -1,
      23,    -1,    24,    -1,    25,    -1,    33,    -1,    34,    -1,
      36,    -1,    37,    -1,    39,    -1,    40,    -1,    41,    -1,
      48,    -1,    49,    -1,    50,    -1,    51,    -1,    52,    -1,
      55,    -1,    56,    -1,    59,    -1,    61,    -1,    62,    -1,
      63,    -1,    64,    -1,    67,    -1,    69,    -1,    70,    -1,
      71,    -1,    72,    -1,    74,    -1,    75,    -1,    77,    -1,
      78,    -1,    79,    -1,    80,    -1,    81,    -1,    82,    -1,
      85,    -1,    86,    -1,    94,    -1,    95,    -1,    96,    -1,
      97,    -1,    98,    -1,    99,    -1,   102,    -1,   104,    -1,
     106,    -1,   107,    -1,   108,    -1,   109,    -1,   110,    -1,
     112,    -1,   113,    -1,   114,    -1,   117,    -1,   118,    -1,
     119,    -1,   120,    -1,   121,    -1,   123,    -1,   124,    -1,
     125,    -1,   127,    -1,   128,    -1,   130,    -1,   131,    -1,
     132,    -1,   133,    -1,   135,    -1,   136,    -1,   137,    -1,
     140,    -1,   142,    -1,   144,    -1,   146,    -1,   148,    -1,
     152,    -1,   153,    -1,   154,    -1,   156,    -1,   159,    -1,
     161,    -1,   162,    -1,   163,    -1,   164,    -1,   165,    -1,
     167,    -1,   168,    -1,   169,    -1,   171,    -1,   172,    -1,
     173,    -1,   174,    -1,   175,    -1,   176,    -1,   178,    -1,
     181,    -1,   182,    -1,   183,    -1,   184,    -1,   190,    -1,
     193,    -1,   195,    -1,   196,    -1,   197,    -1,   198,    -1,
     199,    -1,   200,    -1,   201,    -1,   205,    -1,   208,    -1,
     209,    -1,   210,    -1,   213,    -1,   214,    -1,   215,    -1,
     216,    -1,   217,    -1,   218,    -1,   219,    -1,   220,    -1,
     221,    -1,   222,    -1,   223,    -1,   224,    -1,   228,    -1,
     229,    -1,   232,    -1,   233,    -1,   235,    -1,   238,    -1,
     240,    -1,   241,    -1,   242,    -1,   244,    -1,   247,    -1,
     248,    -1,   249,    -1,   257,    -1,   258,    -1,   259,    -1,
     260,    -1,   261,    -1,   262,    -1,   263,    -1,   265,    -1,
     267,    -1,   270,    -1,   271,    -1,   269,    -1,   273,    -1,
     274,    -1,   275,    -1,   276,    -1,   277,    -1,   278,    -1,
     279,    -1,   281,    -1,   282,    -1,   283,    -1,   284,    -1,
     286,    -1,   287,    -1,   288,    -1,   289,    -1,   290,    -1,
     291,    -1,   292,    -1,   293,    -1,   294,    -1,   295,    -1,
     297,    -1,   298,    -1,   300,    -1,   301,    -1,   303,    -1,
     304,    -1,   305,    -1,   306,    -1,   307,    -1,   308,    -1,
     309,    -1,   310,    -1,   312,    -1,   313,    -1,   314,    -1,
     315,    -1,   316,    -1,   318,    -1,   320,    -1,   321,    -1,
     323,    -1,   326,    -1,   327,    -1,   328,    -1,   329,    -1,
     330,    -1,   331,    -1,   332,    -1,   333,    -1,   334,    -1,
     335,    -1,   338,    -1,   339,    -1,   341,    -1,   342,    -1,
     343,    -1,   344,    -1,   345,    -1,   346,    -1,   352,    -1,
     354,    -1,   357,    -1,   358,    -1,   359,    -1,   360,    -1,
     361,    -1,   362,    -1,   365,    -1,   366,    -1,   367,    -1,
     368,    -1,   369,    -1,   372,    -1,   373,    -1,   374,    -1,
     375,    -1,   376,    -1,   380,    -1,   382,    -1,   383,    -1,
     384,    -1,   387,    -1,   390,    -1,   391,    -1,   392,    -1,
     393,    -1,   394,    -1,   404,    -1,   405,    -1,   406,    -1,
      42,    -1,    43,    -1,    45,    -1,    46,    -1,    57,    -1,
      58,    -1,    65,    -1,   100,    -1,   101,    -1,   134,    -1,
     138,    -1,   143,    -1,   157,    -1,   180,    -1,   185,    -1,
     186,    -1,   188,    -1,   203,    -1,   225,    -1,   227,    -1,
     230,    -1,   237,    -1,   239,    -1,   252,    -1,   256,    -1,
     266,    -1,   268,    -1,   280,    -1,   302,    -1,   319,    -1,
     324,    -1,   336,    -1,   348,    -1,   349,    -1,   353,    -1,
     355,    -1,   377,    -1,   378,    -1,   395,    -1,   396,    -1,
     397,    -1,   398,    -1,   399,    -1,   400,    -1,   401,    -1,
     402,    -1,   403,    -1,    38,    -1,    44,    -1,    73,    -1,
      84,    -1,    90,    -1,   149,    -1,   151,    -1,   166,    -1,
     179,    -1,   191,    -1,   192,    -1,   194,    -1,   204,    -1,
     206,    -1,   226,    -1,   234,    -1,   253,    -1,   254,    -1,
     255,    -1,   299,    -1,   322,    -1,   381,    -1,    22,    -1,
      26,    -1,    27,    -1,    28,    -1,    29,    -1,    30,    -1,
      31,    -1,    32,    -1,    35,    -1,    47,    -1,    53,    -1,
      54,    -1,    60,    -1,    66,    -1,    68,    -1,    76,    -1,
      83,    -1,    87,    -1,    88,    -1,    89,    -1,    91,    -1,
      92,    -1,    93,    -1,   103,    -1,   105,    -1,   111,    -1,
     115,    -1,   116,    -1,   122,    -1,   126,    -1,   129,    -1,
     139,    -1,   141,    -1,   145,    -1,   147,    -1,   150,    -1,
     155,    -1,   158,    -1,   160,    -1,   170,    -1,   177,    -1,
     187,    -1,   189,    -1,   202,    -1,   207,    -1,   211,    -1,
     212,    -1,   231,    -1,   236,    -1,   243,    -1,   245,    -1,
     246,    -1,   250,    -1,   251,    -1,   264,    -1,   272,    -1,
     285,    -1,   296,    -1,   311,    -1,   317,    -1,   325,    -1,
     337,    -1,   340,    -1,   347,    -1,   350,    -1,   351,    -1,
     356,    -1,   363,    -1,   364,    -1,   370,    -1,   371,    -1,
     379,    -1,   385,    -1,   386,    -1,   388,    -1,   389,    -1
};

/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
static const yytype_uint16 yyrline[] =
{
       0,   655,   655,   662,   669,   679,   680,   681,   682,   683,
     684,   685,   686,   687,   688,   689,   690,   691,   692,   693,
     694,   695,   696,   697,   698,   699,   700,   701,   702,   703,
     704,   705,   706,   707,   708,   709,   710,   711,   712,   713,
     714,   715,   716,   717,   718,   719,   720,   721,   722,   723,
     724,   725,   726,   727,   728,   729,   730,   731,   732,   733,
     734,   735,   736,   737,   738,   739,   740,   741,   742,   743,
     744,   745,   746,   747,   748,   749,   750,   751,   752,   753,
     754,   755,   756,   757,   758,   759,   760,   761,   762,   763,
     764,   765,   766,   767,   768,   769,   770,   771,   772,   773,
     774,   775,   776,   777,   778,   779,   780,   781,   782,   783,
     784,   785,   786,   787,   788,   790,   800,   811,   812,   821,
     822,   826,   827,   831,   836,   840,   845,   850,   854,   858,
     863,   867,   921,   923,   927,   931,   935,   939,   953,   971,
     982,   983,   987,  1005,  1017,  1038,  1045,  1064,  1071,  1088,
    1106,  1117,  1118,  1130,  1137,  1154,  1166,  1178,  1179,  1183,
    1184,  1192,  1193,  1194,  1195,  1196,  1197,  1211,  1217,  1223,
    1232,  1240,  1248,  1255,  1262,  1270,  1281,  1289,  1297,  1305,
    1313,  1324,  1332,  1340,  1347,  1357,  1358,  1365,  1366,  1369,
    1371,  1375,  1376,  1377,  1378,  1382,  1383,  1384,  1390,  1402,
    1406,  1410,  1425,  1448,  1449,  1450,  1454,  1455,  1456,  1460,
    1461,  1465,  1472,  1479,  1486,  1493,  1503,  1504,  1509,  1515,
    1521,  1527,  1533,  1543,  1553,  1554,  1558,  1559,  1567,  1582,
    1588,  1594,  1600,  1618,  1626,  1634,  1642,  1653,  1654,  1659,
    1667,  1675,  1684,  1692,  1700,  1709,  1718,  1727,  1736,  1746,
    1759,  1773,  1781,  1789,  1799,  1809,  1816,  1823,  1831,  1839,
    1847,  1855,  1863,  1870,  1877,  1885,  1892,  1899,  1907,  1915,
    1923,  1931,  1939,  1947,  1957,  1964,  1972,  1980,  1988,  1995,
    2005,  2006,  2010,  2011,  2012,  2016,  2024,  2028,  2029,  2033,
    2036,  2037,  2041,  2042,  2047,  2051,  2055,  2060,  2075,  2088,
    2089,  2094,  2103,  2113,  2123,  2148,  2154,  2181,  2203,  2217,
    2218,  2227,  2228,  2229,  2232,  2233,  2238,  2239,  2243,  2247,
    2251,  2255,  2259,  2263,  2267,  2271,  2275,  2279,  2283,  2287,
    2296,  2300,  2304,  2308,  2312,  2316,  2320,  2321,  2326,  2330,
    2337,  2344,  2345,  2346,  2347,  2348,  2352,  2356,  2364,  2375,
    2390,  2406,  2422,  2447,  2448,  2449,  2450,  2451,  2452,  2453,
    2454,  2458,  2459,  2463,  2464,  2468,  2472,  2479,  2483,  2490,
    2491,  2492,  2496,  2497,  2500,  2519,  2539,  2540,  2544,  2552,
    2553,  2554,  2585,  2592,  2599,  2610,  2621,  2630,  2639,  2672,
    2679,  2686,  2693,  2712,  2722,  2723,  2724,  2728,  2729,  2730,
    2731,  2732,  2733,  2742,  2750,  2754,  2766,  2781,  2795,  2810,
    2824,  2842,  2864,  2865,  2869,  2870,  2873,  2879,  2883,  2891,
    2896,  2902,  2903,  2907,  2912,  2919,  2920,  2930,  2932,  2934,
    2936,  2939,  2942,  2945,  2949,  2950,  2951,  2952,  2953,  2956,
    2957,  2962,  2963,  2964,  2965,  2968,  2969,  2970,  2971,  2974,
    2975,  2978,  2979,  2982,  2992,  3017,  3029,  3030,  3034,  3035,
    3039,  3059,  3060,  3061,  3074,  3086,  3095,  3096,  3099,  3100,
    3103,  3107,  3111,  3115,  3119,  3123,  3127,  3131,  3135,  3139,
    3143,  3147,  3153,  3154,  3158,  3159,  3164,  3167,  3168,  3180,
    3192,  3207,  3208,  3216,  3217,  3221,  3222,  3226,  3227,  3231,
    3232,  3236,  3244,  3255,  3256,  3266,  3276,  3277,  3290,  3297,
    3314,  3322,  3333,  3336,  3340,  3344,  3348,  3360,  3370,  3373,
    3377,  3390,  3400,  3410,  3419,  3428,  3437,  3447,  3456,  3466,
    3476,  3486,  3495,  3504,  3513,  3522,  3531,  3540,  3549,  3558,
    3567,  3576,  3585,  3603,  3614,  3615,  3616,  3617,  3621,  3622,
    3626,  3627,  3637,  3645,  3662,  3670,  3682,  3683,  3687,  3691,
    3699,  3703,  3707,  3714,  3718,  3723,  3728,  3735,  3742,  3747,
    3757,  3771,  3772,  3777,  3778,  3782,  3783,  3793,  3801,  3818,
    3827,  3835,  3852,  3867,  3885,  3886,  3890,  3894,  3901,  3912,
    3929,  3941,  3942,  3943,  3953,  3961,  3978,  3997,  4017,  4042,
    4043,  4044,  4048,  4050,  4072,  4074,  4076,  4078,  4080,  4085,
    4090,  4100,  4101,  4105,  4106,  4110,  4111,  4115,  4116,  4117,
    4121,  4127,  4128,  4129,  4133,  4134,  4139,  4140,  4167,  4168,
    4169,  4170,  4171,  4176,  4186,  4208,  4228,  4251,  4261,  4272,
    4282,  4292,  4303,  4312,  4319,  4328,  4337,  4346,  4355,  4364,
    4375,  4378,  4379,  4382,  4386,  4393,  4394,  4395,  4396,  4397,
    4400,  4401,  4404,  4407,  4408,  4416,  4423,  4424,  4427,  4429,
    4440,  4449,  4458,  4482,  4497,  4498,  4502,  4512,  4523,  4532,
    4542,  4551,  4552,  4555,  4556,  4559,  4560,  4561,  4564,  4578,
    4583,  4593,  4602,  4614,  4615,  4619,  4627,  4639,  4648,  4660,
    4669,  4690,  4700,  4718,  4727,  4739,  4740,  4741,  4742,  4743,
    4744,  4745,  4746,  4747,  4748,  4749,  4750,  4751,  4752,  4753,
    4757,  4758,  4761,  4762,  4765,  4767,  4780,  4791,  4792,  4793,
    4819,  4828,  4837,  4846,  4855,  4864,  4873,  4883,  4892,  4901,
    4910,  4919,  4928,  4937,  4945,  4953,  4961,  4972,  4973,  4974,
    4975,  4976,  4977,  4978,  4979,  4980,  4981,  4982,  4983,  4984,
    4985,  4986,  4987,  4988,  4992,  4993,  5007,  5018,  5029,  5040,
    5051,  5064,  5065,  5069,  5070,  5071,  5072,  5073,  5074,  5075,
    5076,  5079,  5080,  5090,  5096,  5104,  5112,  5120,  5128,  5136,
    5144,  5152,  5160,  5168,  5176,  5184,  5192,  5200,  5208,  5216,
    5224,  5234,  5235,  5238,  5239,  5249,  5265,  5279,  5305,  5307,
    5309,  5311,  5318,  5327,  5328,  5331,  5338,  5345,  5352,  5366,
    5374,  5382,  5390,  5398,  5406,  5414,  5422,  5430,  5438,  5446,
    5454,  5462,  5470,  5482,  5483,  5486,  5496,  5510,  5511,  5515,
    5516,  5521,  5537,  5550,  5560,  5572,  5573,  5576,  5577,  5587,
    5597,  5598,  5602,  5606,  5610,  5621,  5634,  5648,  5665,  5666,
    5667,  5679,  5699,  5700,  5704,  5705,  5709,  5710,  5714,  5715,
    5718,  5719,  5727,  5738,  5749,  5762,  5763,  5766,  5767,  5768,
    5771,  5772,  5773,  5776,  5777,  5778,  5794,  5806,  5819,  5834,
    5835,  5838,  5839,  5843,  5844,  5852,  5853,  5857,  5858,  5873,
    5882,  5891,  5900,  5909,  5921,  5922,  5923,  5924,  5925,  5931,
    5935,  5950,  5951,  5957,  5967,  5971,  5976,  5986,  5987,  5994,
    5998,  6002,  6006,  6010,  6014,  6018,  6022,  6026,  6030,  6034,
    6038,  6042,  6050,  6054,  6058,  6062,  6068,  6069,  6076,  6077,
    6080,  6092,  6096,  6111,  6122,  6123,  6128,  6129,  6144,  6154,
    6167,  6177,  6190,  6200,  6213,  6221,  6223,  6225,  6230,  6232,
    6245,  6254,  6255,  6259,  6263,  6275,  6286,  6297,  6310,  6311,
    6312,  6316,  6327,  6328,  6342,  6350,  6360,  6373,  6374,  6377,
    6378,  6388,  6397,  6405,  6413,  6421,  6430,  6438,  6446,  6455,
    6464,  6472,  6481,  6490,  6499,  6508,  6517,  6527,  6537,  6546,
    6554,  6562,  6570,  6579,  6588,  6596,  6604,  6612,  6620,  6628,
    6641,  6642,  6645,  6646,  6656,  6665,  6673,  6681,  6689,  6697,
    6706,  6715,  6724,  6733,  6741,  6749,  6757,  6765,  6773,  6781,
    6789,  6797,  6813,  6822,  6830,  6838,  6846,  6854,  6863,  6871,
    6879,  6888,  6897,  6906,  6914,  6922,  6930,  6938,  6946,  6954,
    6971,  6988,  6989,  6990,  6995,  7001,  7010,  7011,  7012,  7013,
    7014,  7018,  7019,  7022,  7023,  7024,  7025,  7029,  7030,  7031,
    7036,  7046,  7067,  7077,  7078,  7081,  7090,  7096,  7115,  7122,
    7129,  7136,  7143,  7150,  7157,  7165,  7173,  7181,  7189,  7197,
    7204,  7211,  7220,  7221,  7222,  7226,  7229,  7232,  7235,  7238,
    7245,  7247,  7249,  7254,  7256,  7268,  7279,  7293,  7299,  7305,
    7311,  7321,  7337,  7347,  7348,  7352,  7356,  7360,  7364,  7368,
    7372,  7376,  7380,  7384,  7388,  7392,  7396,  7400,  7404,  7408,
    7412,  7422,  7423,  7434,  7441,  7452,  7463,  7464,  7468,  7482,
    7489,  7506,  7519,  7528,  7536,  7544,  7553,  7564,  7565,  7576,
    7586,  7596,  7606,  7616,  7626,  7634,  7655,  7678,  7686,  7695,
    7706,  7707,  7719,  7733,  7747,  7759,  7771,  7788,  7789,  7793,
    7794,  7795,  7796,  7800,  7812,  7827,  7828,  7832,  7833,  7836,
    7837,  7840,  7841,  7845,  7846,  7859,  7866,  7876,  7883,  7893,
    7894,  7895,  7896,  7897,  7898,  7899,  7903,  7907,  7914,  7921,
    7922,  7923,  7927,  7928,  7929,  7939,  7949,  7950,  7954,  7955,
    7956,  7957,  7967,  7975,  7992,  7993,  8003,  8009,  8015,  8021,
    8037,  8047,  8053,  8059,  8068,  8070,  8075,  8086,  8087,  8098,
    8112,  8113,  8124,  8135,  8136,  8139,  8140,  8141,  8142,  8143,
    8144,  8145,  8146,  8149,  8150,  8161,  8179,  8180,  8184,  8185,
    8189,  8197,  8225,  8236,  8237,  8247,  8258,  8261,  8262,  8263,
    8264,  8265,  8268,  8269,  8270,  8318,  8319,  8323,  8324,  8338,
    8339,  8346,  8354,  8362,  8370,  8378,  8386,  8397,  8398,  8425,
    8440,  8441,  8460,  8464,  8468,  8483,  8490,  8500,  8501,  8504,
    8516,  8517,  8521,  8531,  8539,  8544,  8549,  8554,  8559,  8564,
    8569,  8574,  8579,  8586,  8587,  8590,  8591,  8592,  8599,  8600,
    8601,  8602,  8606,  8607,  8611,  8615,  8616,  8619,  8628,  8641,
    8642,  8643,  8644,  8648,  8649,  8653,  8655,  8665,  8670,  8673,
    8678,  8679,  8687,  8697,  8698,  8699,  8707,  8711,  8712,  8715,
    8716,  8721,  8722,  8726,  8727,  8731,  8732,  8736,  8737,  8741,
    8742,  8746,  8754,  8765,  8766,  8771,  8777,  8795,  8796,  8800,
    8801,  8811,  8815,  8820,  8827,  8835,  8842,  8852,  8862,  8890,
    8897,  8901,  8927,  8931,  8943,  8956,  8970,  8981,  8996,  9002,
    9007,  9013,  9020,  9021,  9022,  9023,  9027,  9028,  9040,  9041,
    9046,  9053,  9060,  9067,  9078,  9079,  9092,  9096,  9103,  9113,
    9118,  9119,  9124,  9125,  9133,  9138,  9139,  9143,  9147,  9153,
    9182,  9187,  9194,  9199,  9205,  9210,  9219,  9221,  9224,  9228,
    9229,  9230,  9231,  9232,  9233,  9238,  9268,  9269,  9270,  9271,
    9282,  9288,  9296,  9297,  9303,  9308,  9313,  9318,  9323,  9328,
    9333,  9338,  9344,  9350,  9356,  9363,  9385,  9394,  9398,  9406,
    9410,  9418,  9430,  9451,  9455,  9461,  9465,  9478,  9497,  9520,
    9522,  9524,  9526,  9528,  9530,  9535,  9536,  9540,  9541,  9548,
    9557,  9565,  9574,  9585,  9593,  9594,  9595,  9599,  9601,  9603,
    9605,  9607,  9609,  9611,  9616,  9621,  9627,  9635,  9640,  9647,
    9654,  9658,  9662,  9692,  9693,  9695,  9703,  9725,  9727,  9729,
    9731,  9733,  9735,  9737,  9739,  9741,  9743,  9745,  9748,  9750,
    9752,  9755,  9757,  9759,  9762,  9764,  9777,  9779,  9792,  9794,
    9807,  9809,  9823,  9836,  9849,  9862,  9885,  9892,  9899,  9906,
    9913,  9917,  9924,  9931,  9938,  9945,  9952,  9959,  9963,  9971,
    9975,  9985,  9992,  9999, 10012, 10025, 10044, 10065, 10075, 10082,
   10098, 10103, 10121, 10123, 10125, 10127, 10129, 10131, 10133, 10135,
   10137, 10139, 10141, 10143, 10145, 10147, 10149, 10151, 10153, 10157,
   10162, 10166, 10170, 10175, 10192, 10193, 10194, 10209, 10221, 10223,
   10225, 10235, 10245, 10255, 10263, 10281, 10294, 10307, 10320, 10333,
   10346, 10363, 10376, 10399, 10420, 10430, 10443, 10460, 10473, 10483,
   10496, 10506, 10519, 10532, 10545, 10558, 10571, 10584, 10597, 10599,
   10612, 10630, 10644, 10660, 10682, 10698, 10711, 10724, 10737, 10741,
   10748, 10756, 10764, 10768, 10772, 10776, 10780, 10784, 10799, 10803,
   10812, 10816, 10820, 10825, 10839, 10841, 10845, 10847, 10849, 10852,
   10855, 10858, 10859, 10862, 10870, 10880, 10881, 10884, 10885, 10886,
   10891, 10895, 10899, 10903, 10914, 10915, 10919, 10920, 10925, 10933,
   10935, 10949, 10952, 10979, 10980, 10983, 10984, 10995, 11013, 11020,
   11029, 11046, 11091, 11099, 11107, 11115, 11123, 11144, 11145, 11146,
   11149, 11150, 11151, 11154, 11155, 11158, 11159, 11160, 11161, 11162,
   11163, 11164, 11165, 11166, 11169, 11171, 11176, 11178, 11183, 11185,
   11187, 11189, 11191, 11193, 11205, 11209, 11216, 11220, 11226, 11230,
   11241, 11242, 11245, 11249, 11253, 11259, 11260, 11265, 11269, 11276,
   11277, 11278, 11279, 11280, 11281, 11282, 11283, 11293, 11297, 11304,
   11311, 11312, 11328, 11332, 11337, 11341, 11356, 11361, 11365, 11368,
   11371, 11372, 11373, 11376, 11383, 11393, 11407, 11408, 11412, 11423,
   11424, 11427, 11428, 11431, 11435, 11442, 11446, 11450, 11457, 11467,
   11468, 11472, 11473, 11476, 11477, 11488, 11489, 11498, 11499, 11507,
   11518, 11519, 11522, 11538, 11546, 11554, 11576, 11577, 11588, 11592,
   11619, 11621, 11626, 11629, 11632, 11634, 11636, 11638, 11648, 11650,
   11661, 11665, 11669, 11673, 11677, 11686, 11693, 11718, 11722, 11728,
   11745, 11749, 11753, 11759, 11760, 11761, 11763, 11764, 11765, 11781,
   11782, 11783, 11788, 11789, 11790, 11796, 11797, 11798, 11799, 11800,
   11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828, 11829,
   11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838, 11839,
   11840, 11841, 11842, 11843, 11844, 11845, 11846, 11847, 11848, 11849,
   11850, 11851, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859,
   11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869,
   11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879,
   11880, 11881, 11882, 11883, 11884, 11885, 11886, 11887, 11888, 11889,
   11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897, 11898, 11899,
   11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 11909,
   11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919,
   11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929,
   11930, 11931, 11932, 11933, 11934, 11935, 11936, 11937, 11938, 11939,
   11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949,
   11950, 11951, 11952, 11953, 11954, 11955, 11956, 11957, 11958, 11959,
   11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968, 11969,
   11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979,
   11980, 11981, 11982, 11983, 11984, 11985, 11986, 11987, 11988, 11989,
   11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999,
   12000, 12001, 12002, 12003, 12004, 12005, 12006, 12007, 12008, 12009,
   12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019,
   12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029,
   12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039,
   12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049,
   12050, 12051, 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059,
   12060, 12061, 12062, 12063, 12064, 12065, 12066, 12067, 12081, 12082,
   12083, 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092,
   12093, 12094, 12095, 12096, 12097, 12098, 12099, 12100, 12101, 12102,
   12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112,
   12113, 12114, 12115, 12116, 12117, 12118, 12119, 12120, 12121, 12122,
   12123, 12124, 12125, 12126, 12127, 12141, 12142, 12143, 12144, 12145,
   12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154, 12155,
   12156, 12157, 12158, 12159, 12160, 12161, 12162, 12172, 12173, 12174,
   12175, 12176, 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184,
   12185, 12186, 12187, 12188, 12189, 12190, 12191, 12192, 12193, 12194,
   12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204,
   12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214,
   12215, 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223, 12224,
   12225, 12226, 12227, 12228, 12229, 12230, 12231, 12232, 12233, 12234,
   12235, 12236, 12237, 12238, 12239, 12240, 12241, 12242, 12243, 12244,
   12245, 12246, 12247
};
#endif

#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
static const char *const yytname[] =
{
  "$end", "error", "$undefined", "IDENT", "FCONST", "SCONST", "BCONST",
  "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS",
  "ABORT_P", "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER",
  "AGGREGATE", "ALL", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE",
  "AND", "ANY", "ARRAY", "AS", "ASC", "ASSERTION", "ASSIGNMENT",
  "ASYMMETRIC", "AT", "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE",
  "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH",
  "BY", "CACHE", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST",
  "CATALOG_P", "CHAIN", "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK",
  "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", "COALESCE", "COLLATE",
  "COLLATION", "COLUMN", "COMMENT", "COMMENTS", "COMMIT", "COMMITTED",
  "CONCURRENTLY", "CONFIGURATION", "CONNECTION", "CONSTRAINT",
  "CONSTRAINTS", "CONTENT_P", "CONTINUE_P", "CONVERSION_P", "COPY", "COST",
  "CREATE", "CROSS", "CSV", "CURRENT_P", "CURRENT_CATALOG", "CURRENT_DATE",
  "CURRENT_ROLE", "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP",
  "CURRENT_USER", "CURSOR", "CYCLE", "DATA_P", "DATABASE", "DAY_P",
  "DEALLOCATE", "DEC", "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS",
  "DEFERRABLE", "DEFERRED", "DEFINER", "DELETE_P", "DELIMITER",
  "DELIMITERS", "DESC", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT",
  "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE",
  "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ESCAPE",
  "EXCEPT", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE", "EXISTS",
  "EXPLAIN", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY",
  "FETCH", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN",
  "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS", "GLOBAL",
  "GRANT", "GRANTED", "GREATEST", "GROUP_P", "HANDLER", "HAVING",
  "HEADER_P", "HOLD", "HOUR_P", "IDENTITY_P", "IF_P", "ILIKE", "IMMEDIATE",
  "IMMUTABLE", "IMPLICIT_P", "IN_P", "INCLUDING", "INCREMENT", "INDEX",
  "INDEXES", "INHERIT", "INHERITS", "INITIALLY", "INLINE_P", "INNER_P",
  "INOUT", "INPUT_P", "INSENSITIVE", "INSERT", "INSTEAD", "INT_P",
  "INTEGER", "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IS", "ISNULL",
  "ISOLATION", "JOIN", "KEY", "LABEL", "LANGUAGE", "LARGE_P", "LAST_P",
  "LC_COLLATE_P", "LC_CTYPE_P", "LEADING", "LEAST", "LEFT", "LEVEL",
  "LIKE", "LIMIT", "LISTEN", "LOAD", "LOCAL", "LOCALTIME",
  "LOCALTIMESTAMP", "LOCATION", "LOCK_P", "MAPPING", "MATCH", "MAXVALUE",
  "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES",
  "NATIONAL", "NATURAL", "NCHAR", "NEXT", "NO", "NONE", "NOT", "NOTHING",
  "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF", "NULLS_P", "NUMERIC",
  "OBJECT_P", "OF", "OFF", "OFFSET", "OIDS", "ON", "ONLY", "OPERATOR",
  "OPTION", "OPTIONS", "OR", "ORDER", "OUT_P", "OUTER_P", "OVER",
  "OVERLAPS", "OVERLAY", "OWNED", "OWNER", "PARSER", "PARTIAL",
  "PARTITION", "PASSING", "PASSWORD", "PLACING", "PLANS", "POSITION",
  "PRECEDING", "PRECISION", "PRESERVE", "PREPARE", "PREPARED", "PRIMARY",
  "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "QUOTE", "RANGE",
  "READ", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", "REF", "REFERENCES",
  "REINDEX", "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE",
  "REPLICA", "RESET", "RESTART", "RESTRICT", "RETURNING", "RETURNS",
  "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROW", "ROWS", "RULE",
  "SAVEPOINT", "SCHEMA", "SCROLL", "SEARCH", "SECOND_P", "SECURITY",
  "SELECT", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION",
  "SESSION_USER", "SET", "SETOF", "SHARE", "SHOW", "SIMILAR", "SIMPLE",
  "SMALLINT", "SOME", "STABLE", "STANDALONE_P", "START", "STATEMENT",
  "STATISTICS", "STDIN", "STDOUT", "STORAGE", "STRICT_P", "STRIP_P",
  "SUBSTRING", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", "TABLES",
  "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TEXT_P", "THEN", "TIME",
  "TIMESTAMP", "TO", "TRAILING", "TRANSACTION", "TREAT", "TRIGGER", "TRIM",
  "TRUE_P", "TRUNCATE", "TRUSTED", "TYPE_P", "UNBOUNDED", "UNCOMMITTED",
  "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNLOGGED",
  "UNTIL", "UPDATE", "USER", "USING", "VACUUM", "VALID", "VALIDATE",
  "VALIDATOR", "VALUE_P", "VALUES", "VARCHAR", "VARIADIC", "VARYING",
  "VERBOSE", "VERSION_P", "VIEW", "VOLATILE", "WHEN", "WHERE",
  "WHITESPACE_P", "WINDOW", "WITH", "WITHOUT", "WORK", "WRAPPER", "WRITE",
  "XML_P", "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT", "XMLEXISTS",
  "XMLFOREST", "XMLPARSE", "XMLPI", "XMLROOT", "XMLSERIALIZE", "YEAR_P",
  "YES_P", "ZONE", "NULLS_FIRST", "NULLS_LAST", "WITH_TIME", "'='", "'<'",
  "'>'", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS",
  "'['", "']'", "'('", "')'", "'.'", "';'", "','", "':'", "$accept",
  "stmtblock", "stmtmulti", "stmt", "CreateRoleStmt", "opt_with",
  "OptRoleList", "AlterOptRoleList", "AlterOptRoleElem",
  "CreateOptRoleElem", "CreateUserStmt", "AlterRoleStmt",
  "opt_in_database", "AlterRoleSetStmt", "AlterUserStmt",
  "AlterUserSetStmt", "DropRoleStmt", "DropUserStmt", "CreateGroupStmt",
  "AlterGroupStmt", "add_drop", "DropGroupStmt", "CreateSchemaStmt",
  "OptSchemaName", "OptSchemaEltList", "schema_stmt", "VariableSetStmt",
  "set_rest", "var_name", "var_list", "var_value", "iso_level",
  "opt_boolean_or_string", "zone_value", "opt_encoding", "ColId_or_Sconst",
  "VariableResetStmt", "SetResetClause", "VariableShowStmt",
  "ConstraintsSetStmt", "constraints_set_list", "constraints_set_mode",
  "CheckPointStmt", "DiscardStmt", "AlterTableStmt", "alter_table_cmds",
  "alter_table_cmd", "alter_column_default", "opt_drop_behavior",
  "opt_collate_clause", "alter_using", "reloptions", "opt_reloptions",
  "reloption_list", "reloption_elem", "AlterCompositeTypeStmt",
  "alter_type_cmds", "alter_type_cmd", "ClosePortalStmt", "CopyStmt",
  "copy_from", "copy_file_name", "copy_options", "copy_opt_list",
  "copy_opt_item", "opt_binary", "opt_oids", "copy_delimiter", "opt_using",
  "copy_generic_opt_list", "copy_generic_opt_elem", "copy_generic_opt_arg",
  "copy_generic_opt_arg_list", "copy_generic_opt_arg_list_item",
  "CreateStmt", "OptTemp", "OptTableElementList",
  "OptTypedTableElementList", "TableElementList", "TypedTableElementList",
  "TableElement", "TypedTableElement", "columnDef", "columnOptions",
  "ColQualList", "ColConstraint", "ColConstraintElem", "ConstraintAttr",
  "TableLikeClause", "TableLikeOptionList", "TableLikeOption",
  "TableConstraint", "ConstraintElem", "opt_column_list", "columnList",
  "columnElem", "key_match", "ExclusionConstraintList",
  "ExclusionConstraintElem", "ExclusionWhereClause", "key_actions",
  "key_update", "key_delete", "key_action", "OptInherit", "OptWith",
  "OnCommitOption", "OptTableSpace", "OptConsTableSpace", "ExistingIndex",
  "CreateAsStmt", "create_as_target", "OptCreateAs", "CreateAsList",
  "CreateAsElement", "opt_with_data", "CreateSeqStmt", "AlterSeqStmt",
  "OptSeqOptList", "SeqOptList", "SeqOptElem", "opt_by", "NumericOnly",
  "NumericOnly_list", "CreatePLangStmt", "opt_trusted", "handler_name",
  "opt_inline_handler", "validator_clause", "opt_validator",
  "DropPLangStmt", "opt_procedural", "CreateTableSpaceStmt",
  "OptTableSpaceOwner", "DropTableSpaceStmt", "CreateExtensionStmt",
  "create_extension_opt_list", "create_extension_opt_item",
  "AlterExtensionStmt", "alter_extension_opt_list",
  "alter_extension_opt_item", "AlterExtensionContentsStmt",
  "CreateFdwStmt", "fdw_option", "fdw_options", "opt_fdw_options",
  "DropFdwStmt", "AlterFdwStmt", "create_generic_options",
  "generic_option_list", "alter_generic_options",
  "alter_generic_option_list", "alter_generic_option_elem",
  "generic_option_elem", "generic_option_name", "generic_option_arg",
  "CreateForeignServerStmt", "opt_type", "foreign_server_version",
  "opt_foreign_server_version", "DropForeignServerStmt",
  "AlterForeignServerStmt", "CreateForeignTableStmt",
  "OptForeignTableElementList", "ForeignTableElementList",
  "ForeignTableElement", "AlterForeignTableStmt", "CreateUserMappingStmt",
  "auth_ident", "DropUserMappingStmt", "AlterUserMappingStmt",
  "CreateTrigStmt", "TriggerActionTime", "TriggerEvents",
  "TriggerOneEvent", "TriggerForSpec", "TriggerForOptEach",
  "TriggerForType", "TriggerWhen", "TriggerFuncArgs", "TriggerFuncArg",
  "OptConstrFromTable", "ConstraintAttributeSpec",
  "ConstraintAttributeElem", "DropTrigStmt", "CreateAssertStmt",
  "DropAssertStmt", "DefineStmt", "definition", "def_list", "def_elem",
  "def_arg", "aggr_args", "old_aggr_definition", "old_aggr_list",
  "old_aggr_elem", "opt_enum_val_list", "enum_val_list", "AlterEnumStmt",
  "CreateOpClassStmt", "opclass_item_list", "opclass_item", "opt_default",
  "opt_opfamily", "opclass_purpose", "opt_recheck", "CreateOpFamilyStmt",
  "AlterOpFamilyStmt", "opclass_drop_list", "opclass_drop",
  "DropOpClassStmt", "DropOpFamilyStmt", "DropOwnedStmt",
  "ReassignOwnedStmt", "DropStmt", "drop_type", "any_name_list",
  "any_name", "attrs", "TruncateStmt", "opt_restart_seqs", "CommentStmt",
  "comment_type", "comment_text", "SecLabelStmt", "opt_provider",
  "security_label_type", "security_label", "FetchStmt", "fetch_args",
  "from_in", "opt_from_in", "GrantStmt", "RevokeStmt", "privileges",
  "privilege_list", "privilege", "privilege_target", "grantee_list",
  "grantee", "opt_grant_grant_option", "function_with_argtypes_list",
  "function_with_argtypes", "GrantRoleStmt", "RevokeRoleStmt",
  "opt_grant_admin_option", "opt_granted_by", "AlterDefaultPrivilegesStmt",
  "DefACLOptionList", "DefACLOption", "DefACLAction",
  "defacl_privilege_target", "IndexStmt", "opt_unique", "opt_concurrently",
  "opt_index_name", "access_method_clause", "index_params", "index_elem",
  "opt_collate", "opt_class", "opt_asc_desc", "opt_nulls_order",
  "CreateFunctionStmt", "opt_or_replace", "func_args", "func_args_list",
  "func_args_with_defaults", "func_args_with_defaults_list", "func_arg",
  "arg_class", "param_name", "func_return", "func_type",
  "func_arg_with_default", "createfunc_opt_list", "common_func_opt_item",
  "createfunc_opt_item", "func_as", "opt_definition", "table_func_column",
  "table_func_column_list", "AlterFunctionStmt", "alterfunc_opt_list",
  "opt_restrict", "RemoveFuncStmt", "RemoveAggrStmt", "RemoveOperStmt",
  "oper_argtypes", "any_operator", "DoStmt", "dostmt_opt_list",
  "dostmt_opt_item", "CreateCastStmt", "cast_context", "DropCastStmt",
  "opt_if_exists", "ReindexStmt", "reindex_type", "opt_force",
  "RenameStmt", "opt_column", "opt_set_data", "AlterObjectSchemaStmt",
  "AlterOwnerStmt", "RuleStmt", "RuleActionList", "RuleActionMulti",
  "RuleActionStmt", "RuleActionStmtOrEmpty", "event", "opt_instead",
  "DropRuleStmt", "NotifyStmt", "notify_payload", "ListenStmt",
  "UnlistenStmt", "TransactionStmt", "opt_transaction",
  "transaction_mode_item", "transaction_mode_list",
  "transaction_mode_list_or_empty", "ViewStmt", "opt_check_option",
  "LoadStmt", "CreatedbStmt", "createdb_opt_list", "createdb_opt_item",
  "opt_equal", "AlterDatabaseStmt", "AlterDatabaseSetStmt",
  "alterdb_opt_list", "alterdb_opt_item", "DropdbStmt", "CreateDomainStmt",
  "AlterDomainStmt", "opt_as", "AlterTSDictionaryStmt",
  "AlterTSConfigurationStmt", "CreateConversionStmt", "ClusterStmt",
  "cluster_index_specification", "VacuumStmt", "vacuum_option_list",
  "vacuum_option_elem", "AnalyzeStmt", "analyze_keyword", "opt_verbose",
  "opt_full", "opt_freeze", "opt_name_list", "ExplainStmt",
  "ExplainableStmt", "explain_option_list", "explain_option_elem",
  "explain_option_name", "explain_option_arg", "PrepareStmt",
  "prep_type_clause", "PreparableStmt", "ExecuteStmt",
  "execute_param_clause", "DeallocateStmt", "InsertStmt", "insert_rest",
  "insert_column_list", "insert_column_item", "returning_clause",
  "DeleteStmt", "using_clause", "LockStmt", "opt_lock", "lock_type",
  "opt_nowait", "UpdateStmt", "set_clause_list", "set_clause",
  "single_set_clause", "multiple_set_clause", "set_target",
  "set_target_list", "DeclareCursorStmt", "cursor_name", "cursor_options",
  "opt_hold", "SelectStmt", "select_with_parens", "select_no_parens",
  "select_clause", "simple_select", "with_clause", "cte_list",
  "common_table_expr", "opt_with_clause", "into_clause",
  "OptTempTableName", "opt_table", "opt_all", "opt_distinct",
  "opt_sort_clause", "sort_clause", "sortby_list", "sortby",
  "select_limit", "opt_select_limit", "limit_clause", "offset_clause",
  "select_limit_value", "select_offset_value",
  "opt_select_fetch_first_value", "select_offset_value2", "row_or_rows",
  "first_or_next", "group_clause", "having_clause", "for_locking_clause",
  "opt_for_locking_clause", "for_locking_items", "for_locking_item",
  "locked_rels_list", "values_clause", "from_clause", "from_list",
  "table_ref", "joined_table", "alias_clause", "join_type", "join_outer",
  "join_qual", "relation_expr", "relation_expr_list",
  "relation_expr_opt_alias", "func_table", "where_clause",
  "where_or_current_clause", "OptTableFuncElementList",
  "TableFuncElementList", "TableFuncElement", "Typename",
  "opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType",
  "opt_type_modifiers", "Numeric", "opt_float", "Bit", "ConstBit",
  "BitWithLength", "BitWithoutLength", "Character", "ConstCharacter",
  "CharacterWithLength", "CharacterWithoutLength", "character",
  "opt_varying", "opt_charset", "ConstDatetime", "ConstInterval",
  "opt_timezone", "opt_interval", "interval_second", "a_expr", "b_expr",
  "c_expr", "func_expr", "xml_root_version", "opt_xml_root_standalone",
  "xml_attributes", "xml_attribute_list", "xml_attribute_el",
  "document_or_content", "xml_whitespace_option", "xmlexists_argument",
  "window_clause", "window_definition_list", "window_definition",
  "over_clause", "window_specification", "opt_existing_window_name",
  "opt_partition_clause", "opt_frame_clause", "frame_extent",
  "frame_bound", "row", "sub_type", "all_Op", "MathOp", "qual_Op",
  "qual_all_Op", "subquery_Op", "expr_list", "func_arg_list",
  "func_arg_expr", "type_list", "array_expr", "array_expr_list",
  "extract_list", "extract_arg", "overlay_list", "overlay_placing",
  "position_list", "substr_list", "substr_from", "substr_for", "trim_list",
  "in_expr", "case_expr", "when_clause_list", "when_clause",
  "case_default", "case_arg", "columnref", "indirection_el", "indirection",
  "opt_indirection", "opt_asymmetric", "ctext_expr", "ctext_expr_list",
  "ctext_row", "target_list", "target_el", "qualified_name_list",
  "qualified_name", "name_list", "name", "database_name", "access_method",
  "attr_name", "index_name", "file_name", "func_name", "AexprConst",
  "Iconst", "Sconst", "RoleId", "SignedIconst", "ColId",
  "type_function_name", "ColLabel", "unreserved_keyword",
  "col_name_keyword", "type_func_name_keyword", "reserved_keyword", 0
};
#endif

# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
   token YYLEX-NUM.  */
static const yytype_uint16 yytoknum[] =
{
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
     595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
     605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
     615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
     625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
     635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
     645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
     655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
      61,    60,    62,   665,    43,    45,    42,    47,    37,    94,
     666,    91,    93,    40,    41,    46,    59,    44,    58
};
# endif

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
static const yytype_uint16 yyr1[] =
{
       0,   429,   430,   431,   431,   432,   432,   432,   432,   432,
     432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
     432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
     432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
     432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
     432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
     432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
     432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
     432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
     432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
     432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
     432,   432,   432,   432,   432,   432,   433,   434,   434,   435,
     435,   436,   436,   437,   437,   437,   437,   437,   437,   437,
     437,   437,   438,   438,   438,   438,   438,   438,   439,   440,
     441,   441,   442,   443,   444,   445,   445,   446,   446,   447,
     448,   449,   449,   450,   450,   451,   451,   452,   452,   453,
     453,   454,   454,   454,   454,   454,   454,   455,   455,   455,
     456,   456,   456,   456,   456,   456,   456,   456,   456,   456,
     456,   456,   456,   456,   456,   457,   457,   458,   458,   459,
     459,   460,   460,   460,   460,   461,   461,   461,   461,   462,
     462,   462,   462,   462,   462,   462,   463,   463,   463,   464,
     464,   465,   465,   465,   465,   465,   466,   466,   467,   467,
     467,   467,   467,   468,   469,   469,   470,   470,   471,   472,
     472,   472,   472,   473,   473,   473,   473,   474,   474,   475,
     475,   475,   475,   475,   475,   475,   475,   475,   475,   475,
     475,   475,   475,   475,   475,   475,   475,   475,   475,   475,
     475,   475,   475,   475,   475,   475,   475,   475,   475,   475,
     475,   475,   475,   475,   475,   475,   475,   475,   475,   475,
     476,   476,   477,   477,   477,   478,   478,   479,   479,   480,
     481,   481,   482,   482,   483,   483,   483,   483,   484,   485,
     485,   486,   486,   486,   486,   487,   487,   488,   488,   489,
     489,   490,   490,   490,   491,   491,   492,   492,   493,   493,
     493,   493,   493,   493,   493,   493,   493,   493,   493,   493,
     494,   494,   495,   495,   496,   496,   497,   497,   498,   498,
     499,   500,   500,   500,   500,   500,   501,   501,   502,   503,
     503,   503,   503,   504,   504,   504,   504,   504,   504,   504,
     504,   505,   505,   506,   506,   507,   507,   508,   508,   509,
     509,   509,   510,   510,   511,   512,   513,   513,   514,   514,
     514,   514,   515,   515,   515,   515,   515,   515,   515,   516,
     516,   516,   516,   517,   518,   518,   518,   519,   519,   519,
     519,   519,   519,   520,   520,   521,   521,   521,   521,   521,
     521,   521,   522,   522,   523,   523,   524,   525,   525,   525,
     525,   526,   526,   527,   527,   528,   528,   529,   529,   529,
     529,   529,   530,   531,   532,   532,   532,   532,   532,   533,
     533,   534,   534,   534,   534,   535,   535,   535,   535,   536,
     536,   537,   537,   538,   539,   540,   541,   541,   542,   542,
     543,   544,   544,   544,   545,   546,   547,   547,   548,   548,
     549,   549,   549,   549,   549,   549,   549,   549,   549,   549,
     549,   549,   550,   550,   551,   551,   551,   552,   552,   553,
     553,   554,   554,   555,   555,   556,   556,   557,   557,   558,
     558,   559,   559,   560,   560,   561,   562,   562,   563,   563,
     564,   564,   565,   565,   566,   566,   566,   567,   568,   568,
     569,   570,   570,   570,   570,   570,   570,   570,   570,   570,
     570,   570,   570,   570,   570,   570,   570,   570,   570,   570,
     570,   570,   570,   571,   572,   572,   572,   572,   573,   573,
     574,   574,   575,   575,   576,   576,   577,   577,   578,   578,
     579,   580,   580,   581,   581,   581,   581,   582,   583,   584,
     585,   586,   586,   587,   587,   588,   588,   589,   589,   590,
     590,   590,   591,   591,   592,   592,   593,   593,   594,   595,
     596,   597,   597,   597,   598,   598,   599,   600,   600,   601,
     601,   601,   602,   602,   603,   603,   603,   603,   603,   604,
     604,   605,   605,   606,   606,   607,   607,   608,   608,   608,
     609,   609,   609,   609,   610,   610,   611,   611,   612,   612,
     612,   612,   612,   613,   613,   614,   615,   616,   616,   616,
     616,   616,   616,   616,   616,   616,   616,   616,   616,   616,
     617,   618,   618,   619,   619,   620,   620,   620,   620,   620,
     621,   621,   622,   623,   623,   624,   625,   625,   626,   626,
     627,   627,   627,   628,   629,   629,   630,   630,   630,   630,
     630,   631,   631,   632,   632,   633,   633,   633,   634,   634,
     635,   636,   636,   637,   637,   638,   638,   639,   639,   640,
     640,   641,   642,   643,   643,   644,   644,   644,   644,   644,
     644,   644,   644,   644,   644,   644,   644,   644,   644,   644,
     645,   645,   646,   646,   647,   647,   648,   649,   649,   649,
     650,   650,   650,   650,   650,   650,   650,   650,   650,   650,
     650,   650,   650,   650,   650,   650,   650,   651,   651,   651,
     651,   651,   651,   651,   651,   651,   651,   651,   651,   651,
     651,   651,   651,   651,   652,   652,   653,   653,   653,   653,
     653,   654,   654,   655,   655,   655,   655,   655,   655,   655,
     655,   656,   656,   657,   657,   658,   658,   658,   658,   658,
     658,   658,   658,   658,   658,   658,   658,   658,   658,   658,
     658,   659,   659,   660,   660,   661,   662,   662,   663,   663,
     663,   663,   663,   664,   664,   665,   665,   665,   665,   666,
     666,   666,   666,   666,   666,   666,   666,   666,   666,   666,
     666,   666,   666,   667,   667,   668,   668,   669,   669,   670,
     670,   671,   672,   673,   673,   674,   674,   675,   675,   676,
     677,   677,   678,   678,   678,   679,   679,   679,   680,   680,
     680,   681,   682,   682,   683,   683,   684,   684,   685,   685,
     686,   686,   687,   687,   687,   688,   688,   689,   689,   689,
     690,   690,   690,   691,   691,   691,   692,   692,   692,   693,
     693,   694,   694,   695,   695,   696,   696,   697,   697,   698,
     698,   698,   698,   698,   699,   699,   699,   699,   699,   700,
     701,   702,   702,   702,   703,   703,   703,   704,   704,   705,
     705,   705,   705,   705,   705,   705,   705,   705,   705,   705,
     705,   705,   706,   706,   706,   706,   707,   707,   708,   708,
     709,   710,   710,   711,   712,   712,   713,   713,   714,   714,
     715,   715,   716,   716,   717,   717,   717,   717,   718,   718,
     719,   720,   720,   721,   721,   722,   722,   722,   723,   723,
     723,   724,   725,   725,   726,   726,   726,   727,   727,   728,
     728,   729,   729,   729,   729,   729,   729,   729,   729,   729,
     729,   729,   729,   729,   729,   729,   729,   729,   729,   729,
     729,   729,   729,   729,   729,   729,   729,   729,   729,   729,
     730,   730,   731,   731,   732,   732,   732,   732,   732,   732,
     732,   732,   732,   732,   732,   732,   732,   732,   732,   732,
     732,   732,   733,   733,   733,   733,   733,   733,   733,   733,
     733,   733,   733,   733,   733,   733,   733,   733,   733,   733,
     734,   735,   735,   735,   736,   736,   737,   737,   737,   737,
     737,   738,   738,   739,   739,   739,   739,   740,   740,   740,
     741,   741,   742,   743,   743,   744,   745,   745,   746,   746,
     746,   746,   746,   746,   746,   746,   746,   746,   746,   746,
     746,   746,   747,   747,   747,   748,   748,   748,   748,   748,
     749,   749,   749,   750,   750,   751,   751,   752,   752,   752,
     752,   753,   754,   755,   755,   756,   756,   756,   756,   756,
     756,   756,   756,   756,   756,   756,   756,   756,   756,   756,
     756,   757,   757,   758,   758,   759,   760,   760,   761,   762,
     762,   763,   764,   764,   764,   764,   764,   765,   765,   766,
     767,   767,   767,   767,   767,   767,   768,   769,   769,   769,
     770,   770,   771,   771,   771,   771,   771,   772,   772,   773,
     773,   773,   773,   774,   774,   775,   775,   776,   776,   777,
     777,   778,   778,   779,   779,   780,   780,   780,   780,   781,
     781,   781,   781,   781,   781,   781,   782,   782,   783,   784,
     784,   784,   785,   785,   785,   786,   787,   787,   788,   788,
     788,   788,   789,   789,   790,   790,   791,   791,   791,   791,
     792,   793,   793,   793,   794,   794,   795,   796,   796,   797,
     798,   798,   799,   800,   800,   801,   801,   801,   801,   801,
     801,   801,   801,   802,   802,   803,   804,   804,   805,   805,
     806,   807,   808,   809,   809,   810,   811,   812,   812,   812,
     812,   812,   813,   813,   813,   814,   814,   815,   815,   816,
     816,   816,   816,   816,   816,   816,   816,   817,   817,   818,
     818,   818,   818,   818,   818,   819,   819,   820,   820,   821,
     822,   822,   823,   823,   824,   824,   824,   824,   824,   824,
     824,   824,   824,   825,   825,   826,   826,   826,   827,   827,
     827,   827,   828,   828,   829,   830,   830,   831,   831,   832,
     832,   832,   832,   833,   833,   834,   834,   834,   835,   835,
     836,   836,   837,   838,   838,   838,   839,   840,   840,   841,
     841,   842,   842,   843,   843,   844,   844,   845,   845,   846,
     846,   847,   847,   848,   848,   849,   849,   850,   850,   851,
     851,   852,   852,   852,   852,   852,   852,   852,   852,   852,
     852,   852,   853,   853,   853,   853,   853,   853,   854,   854,
     854,   854,   855,   855,   855,   855,   856,   856,   857,   857,
     858,   858,   858,   858,   859,   859,   860,   860,   860,   861,
     862,   862,   863,   863,   863,   864,   864,   865,   865,   866,
     867,   867,   867,   867,   867,   867,   868,   868,   868,   869,
     869,   869,   869,   869,   869,   869,   870,   870,   870,   870,
     871,   871,   872,   872,   873,   873,   873,   873,   873,   873,
     873,   873,   873,   873,   873,   874,   874,   875,   875,   876,
     876,   877,   878,   879,   879,   880,   880,   881,   882,   883,
     883,   883,   883,   883,   883,   884,   884,   885,   885,   886,
     886,   886,   886,   887,   888,   888,   888,   889,   889,   889,
     889,   889,   889,   889,   889,   889,   889,   889,   889,   889,
     889,   890,   890,   891,   891,   891,   891,   891,   891,   891,
     891,   891,   891,   891,   891,   891,   891,   891,   891,   891,
     891,   891,   891,   891,   891,   891,   891,   891,   891,   891,
     891,   891,   891,   891,   891,   891,   891,   891,   891,   891,
     891,   891,   891,   891,   891,   891,   891,   891,   891,   891,
     891,   891,   891,   891,   891,   891,   891,   891,   891,   891,
     891,   891,   892,   892,   892,   892,   892,   892,   892,   892,
     892,   892,   892,   892,   892,   892,   892,   892,   892,   892,
     892,   892,   892,   892,   893,   893,   893,   893,   893,   893,
     893,   893,   893,   893,   893,   894,   894,   894,   894,   894,
     894,   894,   894,   894,   894,   894,   894,   894,   894,   894,
     894,   894,   894,   894,   894,   894,   894,   894,   894,   894,
     894,   894,   894,   894,   894,   894,   894,   894,   894,   894,
     894,   894,   894,   894,   894,   894,   894,   894,   894,   894,
     894,   894,   894,   894,   895,   895,   896,   896,   896,   896,
     897,   898,   898,   899,   899,   900,   900,   901,   901,   901,
     902,   902,   902,   902,   903,   903,   904,   904,   905,   906,
     906,   906,   907,   908,   908,   909,   909,   910,   910,   910,
     911,   911,   912,   912,   912,   912,   912,   913,   913,   913,
     914,   914,   914,   915,   915,   916,   916,   916,   916,   916,
     916,   916,   916,   916,   917,   917,   918,   918,   919,   919,
     919,   919,   919,   919,   920,   920,   921,   921,   922,   922,
     923,   923,   924,   924,   924,   925,   925,   926,   926,   927,
     927,   927,   927,   927,   927,   927,   927,   928,   928,   929,
     930,   930,   931,   931,   931,   931,   931,   931,   932,   933,
     934,   934,   934,   935,   935,   936,   937,   937,   938,   939,
     939,   940,   940,   941,   941,   942,   942,   942,   942,   943,
     943,   944,   944,   945,   945,   946,   946,   947,   947,   948,
     949,   949,   950,   950,   950,   950,   951,   951,   952,   952,
     953,   953,   954,   955,   956,   957,   958,   959,   960,   960,
     961,   961,   961,   961,   961,   961,   961,   961,   961,   961,
     961,   961,   961,   962,   963,   964,   965,   965,   965,   966,
     966,   966,   967,   967,   967,   968,   968,   968,   968,   968,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   969,   969,
     969,   969,   969,   969,   969,   969,   969,   969,   970,   970,
     970,   970,   970,   970,   970,   970,   970,   970,   970,   970,
     970,   970,   970,   970,   970,   970,   970,   970,   970,   970,
     970,   970,   970,   970,   970,   970,   970,   970,   970,   970,
     970,   970,   970,   970,   970,   970,   970,   970,   970,   970,
     970,   970,   970,   970,   970,   971,   971,   971,   971,   971,
     971,   971,   971,   971,   971,   971,   971,   971,   971,   971,
     971,   971,   971,   971,   971,   971,   971,   972,   972,   972,
     972,   972,   972,   972,   972,   972,   972,   972,   972,   972,
     972,   972,   972,   972,   972,   972,   972,   972,   972,   972,
     972,   972,   972,   972,   972,   972,   972,   972,   972,   972,
     972,   972,   972,   972,   972,   972,   972,   972,   972,   972,
     972,   972,   972,   972,   972,   972,   972,   972,   972,   972,
     972,   972,   972,   972,   972,   972,   972,   972,   972,   972,
     972,   972,   972,   972,   972,   972,   972,   972,   972,   972,
     972,   972,   972
};

/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
static const yytype_uint8 yyr2[] =
{
       0,     2,     1,     3,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     0,     5,     1,     0,     2,
       0,     2,     0,     2,     2,     3,     3,     1,     3,     3,
       2,     1,     1,     2,     2,     2,     3,     3,     5,     5,
       0,     3,     5,     5,     4,     3,     5,     3,     5,     5,
       6,     1,     1,     3,     5,     6,     4,     1,     0,     2,
       0,     1,     1,     1,     1,     1,     1,     2,     3,     3,
       3,     3,     3,     3,     3,     3,     2,     5,     2,     2,
       2,     2,     3,     3,     3,     1,     3,     1,     3,     1,
       1,     2,     2,     2,     1,     1,     1,     1,     1,     1,
       1,     3,     6,     1,     1,     1,     1,     1,     0,     1,
       1,     2,     3,     4,     3,     2,     2,     1,     2,     3,
       4,     3,     2,     4,     1,     1,     1,     1,     1,     2,
       2,     2,     2,     4,     4,     4,     4,     1,     3,     2,
       3,     4,     6,     6,     6,     5,     5,     6,     6,     4,
       8,     2,     3,     6,     4,     3,     3,     3,     3,     3,
       4,     4,     3,     3,     3,     3,     3,     3,     4,     4,
       3,     2,     3,     2,     2,     3,     3,     2,     2,     1,
       3,     2,     1,     1,     0,     2,     0,     2,     0,     3,
       2,     0,     1,     3,     3,     1,     5,     3,     4,     1,
       3,     4,     6,     4,     8,     2,     2,    10,     6,     1,
       1,     1,     1,     1,     1,     3,     2,     0,     1,     1,
       3,     3,     1,     1,     3,     3,     3,     3,     4,     2,
       1,     0,     2,     0,     3,     0,     1,     0,     1,     3,
       2,     1,     1,     1,     3,     0,     1,     3,     1,    11,
      14,    10,    13,     1,     1,     2,     2,     2,     2,     1,
       0,     1,     0,     3,     0,     1,     3,     1,     3,     1,
       1,     1,     1,     1,     3,     4,     2,     0,     3,     1,
       1,     2,     2,     1,     3,     4,     4,     2,     5,     1,
       2,     2,     2,     3,     3,     3,     0,     1,     1,     1,
       1,     1,     1,     3,     1,     5,     7,     3,     8,     4,
       9,    11,     3,     0,     1,     3,     1,     2,     2,     2,
       0,     1,     3,     3,     6,     4,     0,     1,     1,     2,
       2,     0,     3,     3,     2,     1,     1,     2,     2,     4,
       0,     2,     2,     2,     0,     3,     4,     4,     0,     2,
       0,     4,     0,     3,     7,     5,     3,     0,     1,     3,
       1,     2,     3,     0,     5,     4,     1,     0,     1,     2,
       2,     1,     2,     3,     2,     2,     2,     2,     3,     3,
       1,     3,     1,     0,     1,     2,     1,     1,     3,     6,
      10,     1,     0,     1,     2,     2,     0,     2,     2,     1,
       0,     5,     7,     1,     0,     6,     2,     0,     3,     5,
       5,     8,     2,     0,     2,     2,     2,     5,     2,     0,
       2,     7,    10,     6,     6,     6,     6,     7,     7,     9,
       9,     6,     6,     8,     8,     8,     8,     6,     6,     7,
       8,     6,     6,     7,     2,     2,     2,     2,     1,     2,
       1,     0,     6,     8,     7,     6,     4,     0,     1,     3,
       4,     1,     3,     1,     2,     2,     2,     2,     1,     1,
      10,     2,     0,     2,     2,     1,     0,     4,     6,     5,
       4,     4,     8,    11,     3,     2,     1,     3,     1,     5,
       8,     1,     1,     1,     7,     9,     8,    15,    20,     1,
       1,     2,     1,     3,     1,     1,     1,     3,     1,     3,
       0,     1,     0,     1,     1,     4,     0,     1,     3,     0,
       1,     1,     1,     1,     2,     0,     0,     2,     2,     1,
       2,     2,     2,     6,     8,     8,     4,     5,     4,     4,
       4,     3,     7,     8,     6,     6,     6,     6,     4,     5,
       3,     1,     3,     3,     1,     1,     1,     1,     1,     1,
       3,     3,     3,     1,     3,     3,     1,     0,     1,     3,
       6,     8,     8,    13,     1,     3,     5,     6,     4,     7,
       2,     1,     0,     2,     0,     2,     4,     0,     1,     0,
       6,     8,     8,     1,     3,     5,     5,     7,     9,     7,
       9,     5,     6,     6,     4,     1,     1,     1,     1,     2,
       1,     1,     1,     1,     1,     1,     3,     3,     3,     3,
       1,     3,     1,     2,     2,     3,     5,     2,     2,     0,
       6,     7,     7,     7,     8,     8,     6,     8,     9,     9,
       7,    10,     7,     8,     8,     8,     8,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     2,     1,     3,     1,     1,     8,     9,     9,     9,
       9,     2,     0,     1,     2,     1,     1,     1,     1,     1,
       1,     1,     1,     2,     2,     1,     2,     3,     3,     3,
       3,     4,     4,     3,     3,     3,     4,     4,     3,     4,
       4,     1,     1,     1,     0,     7,     7,    10,     1,     1,
       2,     4,     5,     1,     3,     2,     2,     2,     2,     1,
       2,     2,     4,     3,     2,     2,     2,     3,     2,     2,
       5,     5,     5,     1,     3,     1,     2,     3,     0,     1,
       3,     2,     6,     6,     9,     3,     0,     3,     0,     5,
       2,     0,     3,     3,     3,     7,     7,    10,     1,     1,
       1,    14,     1,     0,     1,     0,     1,     0,     2,     0,
       1,     3,     5,     5,     7,     2,     0,     1,     2,     0,
       1,     1,     0,     1,     1,     0,     9,    12,     7,     2,
       0,     3,     2,     1,     3,     3,     2,     1,     3,     3,
       3,     2,     2,     1,     1,     1,     1,     2,     1,     1,
       1,     1,     4,     5,     1,     3,     3,     1,     2,     4,
       5,     1,     1,     1,     1,     3,     3,     2,     2,     2,
       2,     1,     2,     2,     1,     1,     1,     3,     2,     0,
       2,     1,     3,     5,     1,     2,     1,     0,     5,     7,
       5,     7,     5,     7,     3,     5,     5,     5,     1,     3,
       2,     1,     2,     1,     2,    11,    10,    10,     2,     2,
       0,     9,     2,     0,     4,     4,     4,     1,     1,     1,
       0,     7,     6,     6,     6,     6,     6,     7,     9,     9,
       6,     6,     6,     6,     6,     7,     8,     9,     8,     6,
       6,     6,     5,     5,     8,     8,     8,     8,     6,     9,
       1,     0,     2,     0,     7,     6,     6,     6,     6,     6,
       7,     9,     9,     6,     8,     8,     8,     8,     6,     6,
       7,     6,     7,     6,     6,     6,     6,     6,     7,     7,
       7,     9,     9,     6,     6,     6,     8,     8,     8,     6,
      13,     1,     1,     3,     3,     1,     1,     1,     1,     1,
       1,     1,     0,     1,     1,     1,     1,     1,     1,     0,
       6,     8,     3,     2,     0,     2,     2,     2,     2,     3,
       3,     2,     2,     2,     2,     3,     2,     5,     4,     3,
       3,     3,     1,     1,     0,     3,     2,     2,     1,     2,
       1,     3,     2,     1,     0,     8,    10,     3,     4,     4,
       0,     2,     5,     2,     0,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     4,     3,
       3,     1,     0,     5,     6,     4,     2,     0,     4,     3,
       5,     6,     4,     6,     6,     5,     7,     1,     0,     6,
      11,    11,    11,    13,     9,    11,    10,     4,     2,     5,
       2,     0,     4,     5,     5,     4,     6,     1,     3,     1,
       1,     1,     1,     2,     4,     1,     1,     1,     0,     1,
       0,     1,     0,     3,     0,     2,     4,     3,     5,     1,
       1,     1,     1,     1,     1,     1,     1,     3,     2,     1,
       1,     1,     1,     1,     0,     5,     3,     0,     1,     1,
       1,     1,     3,     8,     3,     0,     2,     3,     2,     3,
       6,     1,     4,     2,     1,     3,     2,     2,     0,     7,
       2,     0,     5,     3,     0,     2,     2,     2,     3,     1,
       3,     1,     2,     1,     0,     8,     1,     3,     1,     1,
       3,     5,     2,     1,     3,     7,     1,     0,     3,     2,
       2,     2,     0,     2,     2,     1,     1,     3,     3,     1,
       2,     4,     4,     2,     3,     5,     5,     1,     1,     9,
       1,     2,     4,     4,     4,     2,     3,     1,     3,     6,
       1,     0,     2,     0,     3,     3,     4,     4,     4,     4,
       3,     2,     1,     1,     0,     1,     1,     0,     1,     5,
       1,     0,     1,     0,     3,     1,     3,     4,     3,     2,
       2,     1,     1,     1,     0,     2,     4,     5,     2,     3,
       1,     1,     1,     1,     3,     0,     1,     1,     1,     1,
       1,     3,     0,     2,     0,     1,     3,     1,     0,     1,
       2,     4,     4,     2,     0,     2,     3,     2,     0,     1,
       3,     1,     2,     1,     2,     5,     6,     5,     1,     2,
       1,     4,     3,     4,     5,     4,     5,     4,     5,     2,
       4,     1,     2,     2,     2,     1,     1,     0,     4,     2,
       1,     2,     2,     4,     1,     3,     1,     2,     3,     1,
       2,     0,     2,     4,     0,     1,     0,     1,     3,     3,
       2,     3,     5,     6,     2,     3,     3,     4,     0,     1,
       1,     1,     1,     1,     2,     5,     1,     1,     1,     1,
       2,     3,     3,     0,     1,     1,     1,     1,     1,     2,
       2,     2,     2,     2,     1,     3,     0,     1,     1,     1,
       1,     5,     2,     1,     1,     1,     1,     5,     2,     2,
       2,     1,     3,     3,     2,     1,     0,     3,     0,     5,
       2,     5,     2,     1,     2,     3,     0,     1,     1,     1,
       1,     1,     1,     3,     3,     3,     3,     3,     3,     3,
       0,     1,     4,     1,     3,     3,     5,     2,     2,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     2,
       2,     3,     3,     2,     3,     5,     4,     6,     3,     5,
       4,     6,     4,     6,     5,     7,     3,     2,     4,     2,
       3,     3,     4,     3,     4,     3,     4,     5,     6,     6,
       7,     6,     7,     6,     7,     3,     4,     4,     6,     2,
       3,     4,     1,     3,     2,     2,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     2,     2,     5,     6,
       6,     7,     3,     4,     1,     1,     2,     4,     1,     1,
       1,     2,     2,     2,     1,     4,     5,     6,     8,     6,
       7,     7,     5,     1,     1,     4,     1,     4,     1,     4,
       1,     4,     1,     1,     1,     1,     1,     1,     6,     4,
       4,     4,     4,     6,     5,     5,     5,     4,     6,     4,
       4,     4,     4,     5,     7,     7,     9,     5,     4,     6,
       5,     7,     7,     7,     2,     3,     3,     3,     4,     0,
       4,     1,     3,     3,     1,     1,     1,     2,     2,     0,
       2,     4,     4,     6,     2,     0,     1,     3,     3,     2,
       2,     0,     6,     1,     0,     3,     0,     2,     2,     0,
       1,     4,     2,     2,     2,     2,     2,     4,     3,     5,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     4,     1,     4,     1,     4,
       1,     2,     1,     2,     1,     3,     1,     3,     1,     3,
       1,     3,     3,     3,     2,     1,     3,     3,     0,     1,
       1,     1,     1,     1,     1,     1,     1,     4,     3,     2,
       3,     0,     3,     3,     2,     2,     1,     0,     2,     2,
       3,     2,     1,     1,     3,     5,     1,     2,     4,     2,
       0,     1,     0,     1,     2,     2,     2,     3,     5,     1,
       2,     0,     2,     1,     0,     1,     1,     1,     3,     3,
       1,     3,     3,     2,     1,     1,     1,     3,     1,     2,
       1,     3,     1,     1,     1,     1,     1,     1,     1,     2,
       1,     1,     1,     1,     1,     2,     5,     2,     3,     6,
       1,     1,     1,     1,     1,     1,     1,     2,     2,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1
};

/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
   means the default is an error.  */
static const yytype_uint16 yydefact[] =
{
    1291,  1094,   504,  1176,  1175,  1094,   228,     0,  1178,     0,
    1094,   331,   890,     0,     0,     0,     0,   504,  1094,     0,
    1291,     0,     0,     0,     0,  1304,     0,     0,     0,     0,
       0,     0,     0,     0,  1094,     0,     0,  1311,     0,     0,
       0,     0,  1304,     0,  1180,     0,     0,     0,     0,     2,
       4,    56,    57,    23,    22,    28,    27,    79,    80,    46,
      16,    70,    51,   112,   111,   113,    34,    30,    64,    20,
      21,    31,    35,    53,    36,    52,    19,    50,    74,    54,
      77,    41,    10,    11,    42,    68,    12,    43,    69,    13,
      44,    14,    58,    81,    26,    55,    78,    37,    66,    62,
       9,    47,    48,    49,    71,    72,    73,    95,    76,   107,
      33,   104,    85,    86,   101,    87,   102,     7,    88,    45,
      15,    98,    97,    99,    65,    38,    67,    96,   100,    17,
      18,   103,    75,    93,    90,   108,   106,   114,    91,    59,
       5,     6,    82,    40,     8,    25,    24,    39,    32,   110,
      29,  1178,    84,    94,    83,    60,    89,    63,    92,   109,
      61,   105,  1278,  1265,  1313,  1277,  1290,     0,  1280,  1093,
    1092,  1078,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   503,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1104,  1809,
    1820,  1821,  1822,  1823,  1824,  1825,  1826,  1827,   306,  1828,
    1829,  1830,  1831,  1832,  1833,  1834,  1835,  1836,  1837,  2068,
    2069,  2070,  2071,  1838,  1839,  1840,  1841,  1842,  1843,  1844,
    2072,  2073,  1845,  1846,  1847,  1848,  1849,  2074,  1850,  1851,
    1852,  1853,  1854,  1855,  1856,  1857,  1858,  1859,  1860,  1861,
    1862,  1863,  1864,  1865,  1866,  1867,  1868,  1869,  1870,  2075,
    2076,  1871,  1872,  1873,  1874,  1875,  1876,  1877,  1878,  1879,
    1880,  1881,  1882,  1883,  1884,  1885,  1886,  1887,  1888,  1889,
    1890,  1891,  1892,  1893,  1894,  2077,  1895,  1896,  1897,  2078,
    1898,  1899,  2079,  1900,  1901,  1902,  1903,  1904,  1905,  1906,
    2080,  1907,  1908,  1909,  1910,  1911,  1912,  1913,  1914,  1915,
    1916,  1917,  1918,  1919,  1920,  1921,  1922,  2081,  1923,  1924,
    1925,  1926,  2082,  2083,  2084,  1927,  1928,  1929,  1930,  1931,
    1932,  1933,  1934,  1935,  2085,  1936,  1937,  1938,  1939,  1940,
    1941,  1942,  1943,  1944,  1945,  1946,  1947,  1948,  1949,  1950,
    1951,  2086,  2087,  1952,  1953,  2088,  1954,  1955,  1956,  2089,
    1957,  2090,  1958,  1959,  1960,  1961,  1962,  1963,  1964,  2091,
    2092,  1965,  1966,  1967,  1968,  1969,  1970,  1971,  1972,  2093,
    1973,  2094,  1976,  1974,  1975,  1977,  1978,  1979,  1980,  1981,
    1982,  1983,  2095,  1984,  1985,  1986,  1987,  1988,  1989,  1990,
    1991,  1992,  1993,  1994,  1995,  1996,  1997,  1998,  1999,  2000,
    2001,  2096,  2002,  2003,  2004,  2005,  2006,  2007,  2008,  2009,
    2010,  2011,  2012,  2013,  2014,  2015,  2097,  2016,  2017,  2018,
    2098,  2019,  2020,  2021,  2022,  2023,  2024,  2025,  2026,  2027,
    2028,  2099,  2029,  2030,  2031,  2032,  2033,  2034,  2035,  2036,
    2100,  2101,  2037,  2102,  2038,  2103,  2039,  2040,  2041,  2042,
    2043,  2044,  2045,  2046,  2047,  2048,  2049,  2050,  2051,  2052,
    2053,  2054,  2104,  2105,  2055,  2056,  2057,  2058,  2059,  2060,
    2061,  2062,  2063,  2064,  2106,  2107,  2108,  2109,  2110,  2111,
    2112,  2113,  2114,  2065,  2066,  2067,   305,  1256,  1782,  1810,
    1811,  1177,  1158,   504,     0,  1081,   330,     0,     0,     0,
       0,     0,     0,     0,     0,   681,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   158,     0,     0,   354,   353,
       0,     0,     0,   862,   359,     0,     0,     0,     0,   492,
    1218,  1974,  1216,  1257,   229,   232,   230,   231,  1804,     0,
     960,   961,   963,     0,     0,   973,   712,   713,     0,   711,
     715,     0,     0,     0,   708,     0,     0,     0,     0,   714,
     706,     0,   705,     0,     0,     0,   710,     0,   707,     0,
       0,  1082,  1215,   360,  1291,     0,  1194,  1178,  1185,  1195,
    1190,  1192,  1191,  1193,  1189,  1803,  1821,   804,   804,   804,
     804,   801,   802,   804,   804,   804,  1989,     0,     0,   783,
       0,   785,  1806,   804,   809,   413,   413,   413,     0,   808,
     813,   413,  1075,  1111,  1787,  1303,     0,   784,  1074,  2037,
    1207,     0,     0,   977,     0,   978,     0,  2004,  1086,   215,
    2014,  2100,  2037,   211,   185,  1825,     0,     0,   808,     0,
    1083,  1084,   772,  1310,  1308,     0,  1843,  1857,  1939,   208,
    2000,  2005,  2014,  2100,  2037,  2064,   167,     0,   222,  2014,
    2100,  2037,   218,  1104,     0,  1281,  1390,  1778,     0,  1077,
    1076,  1179,     0,  1182,     0,  1355,  1986,  1285,  1287,  1184,
    1278,     0,     0,     1,  1291,  1173,  1307,  1307,     0,  1307,
       0,  1270,  1278,  1273,  1277,     0,     0,     0,     0,  1809,
    2115,  2116,  2117,  2118,  2119,  2120,  2121,  2122,  2123,  2124,
    2125,  2126,  2127,  2128,  2129,  2130,  2131,  2132,  2133,  2134,
    2135,  2136,     0,     0,  1788,  1810,  1814,     0,   722,     0,
     118,  1783,   851,     0,     0,     0,  1782,     0,     0,     0,
       0,     0,  1805,     0,     0,  1683,  1847,  1898,  1693,  1691,
    1692,  1685,  1686,  1687,  1688,  1689,  1690,     0,   958,  1684,
       0,   118,     0,     0,     0,     0,     0,     0,     0,     0,
    1942,   118,     0,     0,  1098,     0,     0,     0,  1100,  1103,
    1079,  1161,     0,  1778,     0,     0,   756,   747,     0,   757,
     748,   753,   759,     0,     0,   750,     0,     0,   760,     0,
     749,   751,   762,   752,   758,     0,     0,   754,   755,     0,
       0,  1090,   413,     0,     0,     0,     0,     0,     0,   118,
    1148,  1912,   118,     0,     0,   358,   357,   118,   356,   355,
    1847,  1898,     0,   889,   118,     0,   160,   572,   507,     0,
       0,   641,  1942,   118,     0,     0,     0,     0,   865,     0,
       0,   491,   504,  1219,  1217,     0,   964,   210,   209,   962,
    1912,     0,   284,     0,     0,  1912,  1139,     0,   709,  1912,
       0,  1912,   153,  1780,  1847,  1898,  1912,     0,     0,  1912,
     145,  1912,     0,  1912,   284,  1912,   508,     0,  1912,     0,
    1912,  1942,   147,     0,  1912,   284,   720,     0,  1212,     0,
    1187,  2104,  1201,  1200,     0,  1196,  1204,  1199,  1291,   804,
     803,     0,   804,     0,   804,     0,   804,     0,   804,     0,
       0,     0,   804,  1807,  1808,   786,     0,   810,     0,     0,
     817,   816,   815,     0,     0,     0,   818,  1394,  1234,     0,
    1072,  1089,     0,     0,     0,   980,   980,   980,  1085,   214,
     212,     0,     0,     0,     0,     0,     0,  1091,     0,     0,
       0,     0,  1791,  1793,  1794,  1694,  1761,     0,  2069,  2070,
    2071,  1752,     0,  2072,  2073,  2074,  1606,  1593,  1602,  1607,
    1594,  1596,  1603,  2075,  2076,  1883,  2077,  2078,  1801,  2079,
    2080,  2082,  2083,  2084,  2085,  1598,  1600,  2086,  2087,     0,
    1802,  2089,  2090,  1962,  2092,  2093,  2095,  2096,  1604,  2098,
    2099,  2100,  2101,  2102,  2103,  1800,     0,  1605,  2105,  2107,
    2108,  2109,  2110,  2111,  2112,  2113,  2114,     0,     0,  1775,
       0,  1580,     0,  1426,  1427,  1449,  1450,  1428,  1455,  1456,
    1468,  1429,     0,  1774,  1493,  1579,  1584,     0,  1578,  1574,
    1293,  1770,     0,  1575,  1790,  1792,  1753,   178,   224,     0,
     225,  1776,  2014,   168,   207,   180,   206,   181,   179,     0,
    1845,   169,     0,   176,     0,     0,     0,     0,   221,   219,
       0,  1080,     0,  1392,  1391,     0,     0,  1759,  1779,   729,
    1171,  1172,  1170,     0,  1167,  1169,  1181,  1178,  1766,  1765,
    1767,     0,  1286,     0,     0,     0,  1268,  1267,     3,  1184,
    1305,  1306,     0,     0,     0,     0,     0,     0,     0,     0,
    1348,  1321,  1322,  1324,  1345,  1349,     0,  1274,     0,     0,
    1396,     0,  1356,     0,     0,  1789,     0,     0,     0,     0,
     723,     0,     0,     0,     0,     0,     0,   117,  1137,   217,
    1135,     0,     0,     0,     0,     0,  1142,     0,   151,   152,
     519,   504,     0,     0,     0,     0,     0,   922,     0,     0,
       0,     0,     0,     0,   923,   921,   924,   931,   944,   947,
       0,   841,     0,     0,     0,  1011,     0,     0,  1011,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     234,   237,   279,   484,     0,     0,   486,     0,     0,     0,
       0,     0,     0,     0,   122,     0,     0,     0,     0,   471,
     483,     0,     0,     0,     0,     0,   480,     0,   118,   235,
     465,   468,     0,     0,   581,   580,  1011,     0,   233,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   298,   299,     0,     0,     0,   122,
     144,     0,     0,   236,     0,     0,  1099,  1096,  1097,     0,
    1102,     0,  1157,     0,     0,     0,     0,     0,   761,     0,
       0,  1847,  1898,     0,     0,     0,     0,     0,     0,   333,
     312,   313,   118,   311,     0,     0,   638,     0,  1812,  1437,
    1466,  1444,  1466,  1466,  1433,  1433,  1446,  1434,  1435,  1473,
       0,  1466,  1433,  1438,     0,  1436,  1476,  1476,  1461,     0,
    1418,  1419,  1420,  1421,  1447,  1448,  1422,  1453,  1454,  1423,
    1490,  1433,  1813,     0,     0,   648,     0,  1114,  1147,     0,
       0,   513,     0,  1912,     0,   120,   682,     0,   639,     0,
     120,     0,   156,     0,   576,     0,     0,     0,     0,     0,
       0,   600,   599,     0,     0,     0,   640,     0,   120,   467,
    1912,     0,   457,   413,     0,   864,   867,     0,     0,     0,
    1260,  1262,  1261,     0,  1259,     0,   284,   282,   283,   636,
     972,     0,     0,     0,     0,   284,     0,     0,  1912,     0,
    1912,     0,     0,   284,   284,     0,     0,     0,     0,   577,
       0,   719,   717,   716,   718,     0,     0,     0,     0,     0,
    1912,   284,     0,     0,   704,  1704,     0,     0,  1291,     0,
     196,   197,   195,  1202,   198,  1203,  1198,  1186,     0,   794,
       0,   798,     0,   789,     0,   795,     0,   790,   787,   788,
       0,   793,     0,     0,   414,   416,     0,     0,  1868,     0,
    1903,  1931,  1932,  2005,  2010,     0,  2032,     0,   819,   846,
     814,     0,     0,  1244,  1073,  1710,     0,  1291,     0,   979,
     976,   975,   974,   213,   186,     0,     0,     0,   848,  2004,
    1088,   771,   504,     0,  1576,     0,  1582,  1583,  1465,  1452,
    1751,     0,     0,  1460,  1459,     0,     0,     0,     0,  1442,
    1441,  1440,  1581,  1718,     0,  1439,     0,     0,     0,     0,
    1466,  1466,  1464,  1513,     0,  1443,     0,     0,  1731,     0,
    1737,     0,     0,     0,  1472,     0,  1470,     0,     0,  1549,
       0,     0,     0,     0,     0,     0,     0,     0,  1497,  1498,
    1580,  1704,     0,  1797,     0,     0,  1458,     0,  1490,  1773,
    1694,     0,     0,     0,     0,  1764,     0,  1702,     0,     0,
    1527,  1700,     0,  1529,     0,     0,     0,  1693,  1691,  1692,
    1685,  1686,  1687,  1688,  1689,  1690,  1698,  1510,     0,     0,
    1509,     0,     0,  1358,     0,  1795,  1754,   226,   227,   223,
       0,     0,   183,   182,     0,   200,   204,   205,   175,   203,
       0,   199,  1646,  1645,   184,   174,   172,   170,   187,   189,
     190,   173,   171,   220,     0,     0,  1815,  2137,  2138,  2139,
    2140,  2141,  2142,  2143,  2144,  2145,  2146,  2147,  2148,  2149,
    2150,  2151,  2152,  2153,  2154,  2155,  2156,  2157,  2158,  2159,
    2160,  2161,  2162,  2163,  2164,  2165,  2166,  2167,  2168,  2169,
    2170,  2171,  2172,  2173,  2174,  2175,  2176,  2177,  2178,  2179,
    2180,  2181,  2182,  2183,  2184,  2185,  2186,  2187,  2188,  2189,
    2190,  2191,  2192,  2193,  2194,  2195,  2196,  2197,  2198,  2199,
    2200,  2201,  2202,  2203,  2204,  2205,  2206,  2207,  2208,  2209,
    2210,  2211,  2212,  1756,  1755,  1785,  1816,  1817,  1818,  1819,
    1760,     0,     0,   284,  1165,     0,  1162,  1769,     0,  1288,
       0,     0,  1174,  1284,  1283,  1314,  1315,   882,  1282,  1339,
    1340,  1335,     0,  1354,  1354,  1331,  1325,  1330,  1328,     0,
    1332,  1493,  1347,  1272,  1319,  1320,  1323,  1271,     0,  1350,
    1348,  1324,  1231,     0,     0,  1397,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   724,     0,     0,     0,     0,
       0,     0,  2032,   216,  1133,     0,     0,     0,     0,   850,
     849,     0,     0,   869,     0,     0,     0,  1145,   404,     0,
     281,     0,     0,     0,     0,     0,     0,   517,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   551,  1011,     0,   589,     0,   929,
       0,     0,     0,     0,   930,   927,   928,  2005,   946,   945,
     943,   904,   906,   905,     0,   908,   892,     0,   893,     0,
       0,   903,   911,   909,     0,     0,     0,  1891,   239,   251,
       0,  1010,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   271,     0,   274,   273,     0,     0,     0,     0,
     278,     0,     0,     0,   277,     0,     0,   485,     0,     0,
       0,     0,     0,     0,     0,   959,     0,     0,   139,   142,
       0,     0,   470,   482,     0,   474,   475,   472,   476,   477,
       0,     0,     0,     0,     0,     0,   469,     0,   574,   573,
     579,     0,     0,     0,     0,     0,  1003,  1002,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   591,   592,     0,   593,     0,   143,     0,     0,
       0,     0,     0,     0,   194,  1095,  1101,  1160,  1786,  1159,
       0,     0,     0,   763,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     317,  1812,     0,   663,   637,     0,  1418,     0,  1414,  1410,
    1479,  1480,  1481,  1478,  1491,  1477,     0,  1424,  1482,  1433,
    1430,   649,     0,   651,   654,     0,  1112,   377,     0,   510,
     551,     0,     0,     0,   149,     0,     0,     0,   116,   160,
     360,     0,   159,   161,   163,   164,   165,   162,   166,   571,
     575,     0,   506,     0,     0,     0,     0,     0,   601,   605,
     604,   608,   606,     0,   602,     0,  1406,     0,   138,   464,
     466,     0,     0,     0,   362,   444,     0,     0,     0,   866,
       0,     0,     0,     0,     0,     0,     0,  1258,     0,   950,
       0,  1140,  1912,   284,     0,   948,   154,  1781,     0,     0,
       0,     0,     0,   952,   701,   146,     0,   284,   284,   509,
       0,   284,   148,     0,     0,     0,   501,   284,   721,  1214,
       0,   457,  1188,  1197,   791,   800,   799,   797,   796,   792,
       0,   811,     0,   412,     0,     0,     0,   825,     0,     0,
     824,   839,   826,     0,   828,   821,   820,   829,     0,     0,
     848,     0,  1241,     0,  1239,     0,  1395,  1243,  1232,  1206,
       0,  1205,  1209,  1211,  1210,  1208,     0,     0,     0,   808,
       0,     0,   284,  1087,     0,   773,   778,     0,     0,     0,
     775,   776,   777,   779,   780,     0,     0,     0,  1762,  1714,
       0,  1715,     0,     0,     0,  1750,  1746,     0,     0,     0,
       0,     0,  1719,  1722,  1723,  1724,  1721,  1725,  1720,     0,
       0,  1726,     0,     0,     0,     0,     0,  1463,  1462,     0,
       0,     0,     0,     0,     0,     0,  1552,  1584,     0,     0,
    1678,     0,  1704,  1736,     0,     0,  1474,     0,     0,     0,
       0,     0,     0,     0,  1704,  1742,     0,     0,     0,     0,
    1644,     0,  1641,     0,     0,     0,     0,  1761,     0,     0,
       0,     0,  1798,  1494,  1511,  1772,     0,  1763,     0,     0,
    1495,  1518,     0,  1743,  1545,     0,  1550,  1533,     0,  1526,
       0,  1531,  1535,  1514,  1764,  1703,     0,  1701,     0,     0,
    1512,     0,  1507,  1505,  1506,  1499,  1500,  1501,  1502,  1503,
    1504,  1508,  1682,  1680,  1681,     0,     0,     0,  1530,  1905,
    1939,     0,  1304,  1304,  1304,  1292,  1302,  1771,     0,  1401,
       0,     0,     0,     0,  1661,     0,  1708,     0,  1706,  1788,
    1777,     0,     0,  1490,     0,  1393,  1757,     0,   727,   728,
     726,  1184,  1168,  1164,  1163,  1768,  1183,  1291,     0,   880,
     881,     0,   885,     0,     0,  1333,  1346,     0,  1244,  1244,
       0,  1337,  1338,  1329,  1276,  1275,     0,  1404,     0,     0,
    1228,  1221,  1398,     0,  1358,  1246,  1248,  1249,     0,  1761,
     661,   660,     0,     0,     0,  1033,   982,  1015,   725,  1034,
     983,  1016,  1035,   984,  1134,     0,  1136,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   626,   284,  1143,  1036,   280,  1144,  1017,  1018,     0,
     518,     0,     0,   523,   524,   525,     0,     0,   526,  1847,
    1898,     0,   531,   537,   541,   532,     0,   542,   538,     0,
       0,     0,     0,     0,   548,   555,     0,     0,     0,     0,
       0,   925,   926,  1037,   985,     0,  1019,   907,  1433,   891,
       0,     0,   902,     0,   901,  1433,  1433,   986,   150,   240,
     377,  1013,   257,   270,   265,   266,   264,  1912,   284,  1912,
     284,     0,     0,     0,     0,   267,   262,   263,   259,   272,
    1824,  1884,  2015,     0,   561,   563,     0,   568,   275,   994,
       0,   292,   295,   276,   255,   258,   256,   252,   238,     0,
       0,  1784,     0,     0,   954,     0,     0,     0,   141,   999,
     131,     0,     0,   127,     0,     0,     0,     0,   121,  1043,
     990,   473,   478,   992,   481,  1028,   479,  1049,   991,     0,
    1023,  1045,  1001,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1149,     0,     0,     0,     0,     0,   284,     0,
     670,  1013,  1912,   284,  1044,     0,  1008,  1031,     0,   300,
       0,  1000,   993,  1029,     0,     0,   192,   191,   193,     0,
       0,     0,     0,     0,     0,     0,     0,   765,   736,   764,
       0,     0,     0,     0,     0,     0,     0,   730,   332,   309,
     310,     0,     0,   308,   314,     0,   662,     0,     0,  1415,
    1411,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1431,   650,     0,     0,     0,     0,  1132,  1132,  1132,  1132,
    1132,  1132,  1132,  1113,  1141,   118,     0,     0,     0,   512,
     550,   557,     0,   585,   588,     0,   586,     0,     0,     0,
       0,     0,   132,   119,     0,   690,   413,   155,     0,     0,
       0,   505,   647,   645,   644,   646,     0,     0,     0,   667,
       0,  1405,  1407,     0,     0,     0,   463,   364,     0,     0,
     361,   365,   369,   370,   371,     0,   458,   460,     0,     0,
     448,     0,     0,     0,   896,     0,   914,   897,     0,     0,
       0,   934,   939,   935,   917,     0,   489,  1263,  1264,     0,
     284,     0,     0,   552,   284,     0,   284,     0,   284,   284,
       0,  1070,   578,     0,   633,     0,     0,   284,   703,  1705,
       0,   812,   415,     0,     0,     0,     0,   823,     0,   487,
     827,     0,   838,   833,   835,     0,   842,  1242,  1235,  1237,
    1236,     0,     0,  1233,  1711,   702,     0,     0,   284,     0,
     843,     0,   774,     0,     0,     0,     0,  1309,  1712,  1713,
       0,     0,     0,     0,  1747,     0,     0,  1619,  1595,  1597,
    1432,  1609,     0,  1445,  1620,  1621,  1599,  1601,     0,  1695,
       0,     0,  1610,  1554,  1555,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1567,  1566,
    1611,  1677,     0,     0,  1734,  1735,  1612,  1475,  1476,  1476,
       0,     0,  1741,     0,     0,     0,  1617,  1622,     0,     0,
       0,     0,  1628,     0,  1649,     0,     0,     0,  1577,  1705,
    1467,  1468,     0,     0,     0,     0,     0,     0,     0,     0,
    1551,  1534,  1528,     0,  1532,  1536,     0,     0,     0,     0,
    1520,  1546,  1516,     0,     0,  1522,     0,  1547,  1304,  1304,
    1304,  1304,  1301,     0,     0,     0,     0,  1368,  1357,  1359,
    1370,  1361,  1363,  1399,     0,  1778,     0,  1342,  1313,  1313,
       0,  1661,     0,  1585,     0,  1661,     0,     0,   177,     0,
     201,   188,     0,  1166,     0,  1316,     0,  1696,   885,   883,
     884,  1318,     0,     0,  1353,  1352,  1351,  1326,  1230,     0,
    1228,  1223,     0,  1224,  1761,     0,  1220,  1253,     0,     0,
    1404,     0,  1252,  1032,   981,  1014,  1132,   853,   854,     0,
     852,     0,     0,     0,   403,   868,     0,     0,     0,   626,
       0,     0,   407,  1146,   520,   521,     0,     0,   539,     0,
       0,   528,     0,     0,     0,     0,   527,   544,   493,   545,
     547,     0,   546,   549,   554,   995,     0,  1030,   919,     0,
    1433,   894,   899,   900,     0,   374,     0,     0,     0,   241,
       0,     0,   254,     0,   249,   268,   260,   269,   261,   565,
     566,   564,   560,     0,   567,   569,   289,     0,     0,     0,
    1039,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1040,  1020,     0,     0,   124,   123,     0,   130,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   301,   286,     0,     0,
       0,     0,     0,   303,     0,     0,  1038,   987,   731,     0,
       0,   732,   740,     0,     0,   733,     0,     0,     0,     0,
       0,     0,   742,   335,     0,   338,   345,   318,   322,  1148,
       0,  1148,     0,   323,  1148,   319,  1148,   316,  1962,  1685,
    1686,   658,   665,   655,   657,   659,   656,     0,   664,   626,
       0,     0,     0,  1416,     0,  1484,  1485,  1486,  1487,  1488,
    1489,     0,  1483,  1490,   652,   653,     0,  1132,  1131,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     389,     0,     0,   383,     0,     0,   939,   376,   379,   380,
     513,   516,   514,   515,     0,   543,     0,   584,     0,   557,
     134,     0,     0,   135,   133,     0,     0,   360,     0,     0,
     607,   610,   603,     0,   666,   668,   642,     0,   557,     0,
    1215,     0,   454,     0,   444,   396,   440,     0,   456,     0,
     442,   441,   443,     0,   450,  1110,     0,   869,   895,     0,
       0,     0,   932,   936,   933,     0,     0,   910,     0,   918,
     888,  1065,  1066,  1063,  1064,     0,     0,  1255,   951,     0,
     284,   949,     0,   697,     0,   699,   953,   284,   284,   594,
       0,   502,   460,     0,     0,     0,   822,   840,     0,   836,
       0,     0,   805,   845,  1240,  1238,   848,     0,   806,   847,
       0,     0,     0,     0,     0,  1716,  1451,     0,  1749,  1745,
       0,  1717,     0,  1729,  1728,  1553,  1730,     0,  1572,     0,
       0,  1564,  1562,  1563,  1556,  1557,  1558,  1559,  1560,  1561,
    1565,  1739,  1738,  1732,  1733,  1471,  1469,     0,  1614,  1615,
    1616,  1740,  1623,     0,  1838,  1650,  1627,  1643,  1642,     0,
       0,     0,  1630,     0,     0,  1639,     0,  1679,  1457,  1490,
    1496,     0,     0,  1519,  1744,  1537,     0,     0,     0,  1515,
       0,     0,     0,     0,  1524,  1695,     0,     0,     0,     0,
       0,     0,  1295,  1294,  1300,  1278,     0,  1370,     0,  1369,
    1381,     0,     0,  1387,  1385,     0,  1387,     0,  1387,     0,
    1362,     0,  1364,  1381,     0,  1779,  1400,     0,  1344,     0,
       0,  1312,     0,  1661,  1592,  1664,  1659,  1660,  1709,  1586,
    1796,     0,  1707,  1661,     0,  1758,  1289,     0,  1317,  1334,
    1327,  1864,  1402,  1229,     0,     0,  1226,  1227,     0,     0,
    1247,  1228,  1250,     0,   859,   860,   858,     0,     0,     0,
     626,     0,     0,   421,     0,   876,   876,     0,     0,   409,
     453,   939,   629,     0,     0,   627,     0,   540,     0,     0,
     536,   534,   533,   535,   494,  1048,     0,   920,     0,   912,
       0,   246,  1012,     0,     0,     0,   245,     0,   284,   284,
     562,   293,   294,   297,     0,     0,     0,     0,     0,     0,
     691,   674,     0,     0,   692,   693,     0,     0,     0,   956,
     957,   955,   128,   125,   126,   129,   996,     0,     0,     0,
       0,     0,  1047,  1007,  1027,  1046,  1005,  1025,  1004,  1024,
    1006,  1026,   998,     0,  1409,   672,   671,     0,   284,   284,
     596,     0,   734,     0,     0,   735,   746,   744,   743,   745,
     737,   336,   118,     0,   315,     0,   343,     0,   341,   340,
     342,     0,   329,     0,     0,     0,     0,     0,   635,     0,
       0,     0,  1412,  1417,  1492,  1425,   625,     0,  1123,  1122,
    1121,  1125,  1124,  1127,  1126,  1118,  1117,  1130,  1129,  1116,
    1115,  1120,  1119,     0,   381,     0,   387,   391,   392,   390,
     382,   939,   413,   452,   511,     0,     0,   587,   582,   137,
     136,     0,     0,     0,     0,   612,   616,   643,     0,  1408,
     590,     0,   362,  1213,   461,     0,     0,   367,   372,   373,
       0,   448,   393,     0,   444,   366,   459,     0,     0,   455,
       0,  1105,     0,     0,   898,   915,   916,     0,     0,   939,
     938,     0,   496,   284,   553,   284,   284,  1071,   634,     0,
     832,   831,   830,   488,     0,   834,   284,     0,     0,     0,
       0,     0,   782,   766,   781,  1748,  1608,  1618,  1727,     0,
       0,  1573,     0,     0,  1613,  2106,     0,     0,     0,     0,
    1647,  1648,  1629,     0,  1953,  1634,     0,     0,     0,  1799,
    1543,  1541,  1538,     0,  1539,     0,     0,  1521,  1517,     0,
    1523,  1548,  1299,  1298,  1297,  1296,  1372,  1379,     0,  1360,
       0,  1386,  1382,     0,  1383,     0,     0,  1384,     0,     0,
    1379,     0,     0,     0,     0,  1655,  1661,  1661,  1587,  1666,
    1663,     0,  1589,  1490,     0,     0,  1222,  1225,     0,  1254,
    1245,  1138,     0,     0,     0,   405,     0,   939,     0,     0,
       0,   879,   879,     0,   939,   452,   631,   630,   628,   632,
       0,   529,   530,   997,   913,   242,   243,   244,   247,   286,
     253,   248,     0,  1041,   988,  1021,     0,     0,   680,     0,
       0,     0,     0,  1042,   989,  1022,     0,     0,     0,  1154,
       0,   285,   286,   302,  1009,     0,   738,   739,   317,     0,
     339,   348,     0,   346,   320,   325,     0,   327,   326,   321,
     324,  1413,     0,   970,   970,     0,   626,  1128,     0,     0,
     378,   452,   420,     0,   384,     0,   558,     0,     0,  1110,
     362,   557,   611,     0,     0,     0,   669,   364,     0,   462,
     363,     0,     0,   450,     0,     0,     0,   448,     0,   445,
       0,   449,     0,     0,     0,     0,     0,   937,     0,   941,
       0,   909,   886,  1401,     0,   500,   971,   698,   700,   595,
     837,   844,   284,   767,   768,   769,   770,  1568,     0,     0,
       0,     0,  1624,     0,  1625,  1652,  1651,  1631,  1635,     0,
    1632,  1633,  1540,  1544,  1542,  1525,  1371,     0,     0,  1373,
       0,     0,  1375,  1377,     0,     0,     0,     0,     0,  1782,
    1661,  1341,  1343,     0,  1279,  1590,  1591,     0,  1313,  1661,
     202,  1697,  1403,  1251,   838,     0,   284,   876,   452,   422,
    1962,   423,   875,     0,   877,   882,   882,     0,   452,   626,
     522,   288,   296,     0,     0,   687,   675,     0,     0,   694,
       0,     0,     0,     0,     0,   284,   741,   307,   334,   344,
       0,   328,   970,     0,   967,   966,   624,     0,   386,   385,
       0,   431,     0,   556,     0,   557,   684,  1106,   570,   613,
     614,   609,     0,     0,   444,   440,   368,   377,   351,   402,
     401,   398,   397,   399,   400,   395,   394,     0,   450,   446,
     447,     0,  1107,     0,  1156,     0,   870,   940,     0,     0,
       0,   495,     0,     0,   499,   490,   807,  1569,     0,  1570,
       0,     0,     0,  1637,  1636,     0,  1380,  1389,     0,  1376,
    1374,  1365,     0,  1367,  1654,  1656,     0,     0,  1669,  1588,
     855,     0,   856,   879,   426,     0,   878,   885,   885,   413,
     626,   406,     0,   250,     0,   678,     0,   689,   687,     0,
       0,  1150,     0,  1151,  1152,  1155,   304,   347,   965,   969,
     968,     0,   417,   418,   419,     0,   388,   427,   428,     0,
     559,   583,     0,     0,     0,     0,   448,   444,   375,   439,
     349,  1108,  1109,   291,     0,   939,   942,  1069,   498,   497,
    1571,  1640,  1626,  1653,  1638,  1378,     0,  1366,     0,     0,
    1665,     0,     0,     0,     0,   882,     0,   626,     0,   873,
     872,   420,   408,   287,     0,     0,   685,   688,   676,   689,
     696,   695,     0,     0,     0,     0,     0,   429,     0,   430,
     451,   683,     0,   615,     0,   450,   448,     0,   450,   871,
     887,  1068,  1067,  1291,  1388,  1657,  1658,  2068,  1864,  2042,
       0,  1667,  1670,  1668,  1662,   284,   885,     0,   410,   424,
     431,     0,     0,   677,  1153,   616,   436,     0,   435,     0,
     433,   432,   673,   619,   352,   450,   290,  1401,  1051,  1291,
    1050,  1052,  1060,  1057,  1059,  1058,  1056,     0,  1674,  1673,
    1672,  1676,  1675,   857,   874,     0,   626,   679,   686,     0,
     434,   438,   437,   621,     0,   617,   620,   622,   623,   350,
     861,     0,  1061,  1055,  1278,  1265,     0,   425,   411,     0,
     597,     0,  1053,  1291,  1671,     0,   618,  1054,     0,   619,
       0,   598
};

/* YYDEFGOTO[NTERM-NUM].  */
static const yytype_int16 yydefgoto[] =
{
      -1,    48,    49,    50,    51,  1158,  2014,  1898,  2632,  2633,
      52,    53,  1225,    54,    55,    56,    57,    58,    59,    60,
    1171,    61,    62,   845,  1362,  2022,    63,  1783,   667,  1627,
    1628,  1955,  1629,  1618,  1075,  1444,  1159,  1187,    65,    66,
    1069,  1609,    67,    68,    69,  1210,  1211,  1166,  1399,  3454,
    3983,  1884,  4078,  2480,  2481,    70,  1264,  1265,    71,    72,
    2581,  1302,  2583,  2584,  3067,   507,  1979,  3472,  3473,  3054,
    3055,  3479,  3732,  3733,    73,  1359,  2659,  3154,  2660,  3546,
    2661,  3547,  2662,  3548,  2614,  3117,  3118,  3119,  2663,  3552,
    3925,  2664,  1798,   940,  1463,  1464,  3901,  3372,  3373,  4047,
    4006,  4007,  4008,  4110,  3554,  2670,  3164,  3559,  3754,  2391,
     586,  1381,  2055,  2665,  2666,  3152,    75,    76,  2049,  1240,
    1241,  1904,  3071,  2720,    77,   862,  2947,  3795,  3944,  3945,
      78,   197,    79,  1366,    80,    81,  2009,  2619,    82,  1807,
    2400,    83,    84,  2424,  2425,  2426,    85,    86,  3125,  3755,
    1212,  2473,  2474,  2475,  2476,  2984,    87,  1364,  1245,  2031,
      88,    89,    90,  2013,  2625,  2626,    91,    92,  1944,    93,
      94,    95,  1374,  2043,  2044,  3536,  3763,  3911,  3765,  4144,
    4145,  3746,  2932,  3385,    96,    97,    98,    99,  1345,  2002,
    2003,  3072,  1144,  1306,  1982,  1983,  3143,  3144,   100,   101,
    3420,  3421,   537,  4013,  3987,  4058,   102,   103,  3424,  3425,
     104,   105,   106,   107,   108,   580,   905,   906,  1150,   109,
    1723,   110,   820,  2568,   111,   970,  2166,  3593,   112,   609,
     920,   921,   113,   114,   618,  2149,   620,  1477,  2722,  2723,
    3212,  2120,   749,   115,   116,  2130,  2152,   117,  1161,  1789,
    1790,  3367,   118,   538,  1386,  2058,  2386,  3935,  3374,  3681,
    3865,  2332,  2891,   119,   539,  1191,  1847,  2061,  2675,  2676,
    1849,  2305,  3176,  1851,  2677,  2682,  2683,  2684,  3172,  3180,
    3789,  3790,   120,  1189,  1840,   121,   122,   123,  1220,   767,
     124,   550,   551,   125,  3894,   126,   874,   127,   636,  1490,
     128,  1862,  2970,   129,   130,   131,  4120,  4151,  4152,  4153,
    3185,  4083,   132,  4122,   950,   134,   135,   136,   171,   788,
     789,   790,   137,  3561,   138,   139,  2006,  2613,  3099,   140,
     141,  1784,  2376,   142,   143,   144,  1349,   145,   146,   147,
     148,  1282,   149,  1103,  1104,   150,   151,   502,   683,  1107,
    1115,   152,   588,   914,   915,   916,  1446,   153,   953,  2141,
     589,   908,   155,   590,  2350,  2902,  2903,  2906,   591,  2347,
     158,  1483,  2135,  2138,   592,  2354,  2355,  2356,  2357,  2358,
    2908,   593,   611,   865,  2066,   594,  1041,   163,   164,   165,
     692,   687,   688,   167,  1603,  2295,   626,  1122,   655,   700,
    3331,  1735,  1736,  1756,  1757,  1131,  1132,  1746,  1748,  2334,
    1749,  2343,  1741,  3328,  3655,  1752,  1753,  1134,  1135,  2338,
     168,  2299,  2858,  2859,  2860,  3309,  3319,  3642,  3832,  2861,
     948,  1141,  2862,  2867,  2900,  2650,  2651,  2652,  1852,  1989,
    1330,  1042,  1331,  2000,  1043,  1525,  1333,  1044,  1045,  1046,
    1336,  1047,  1048,  1049,  1050,  1509,  1566,  1051,  1052,  1544,
    1997,  1998,  1435,  2205,  1054,  1055,  3275,  3617,  3606,  2231,
    2232,  1624,  3271,  2810,  3844,  3964,  3965,  3339,  3336,  3659,
    3848,  4043,  4091,  4092,  1056,  2285,  1596,   769,  1057,  3074,
    1598,  2225,  2307,  2308,  1768,  1507,  2172,  2189,  2190,  2202,
    2771,  2209,  2214,  2794,  2795,  2226,  2254,  1058,  2175,  2176,
    2755,  1511,  1059,  1097,  1098,  1504,  2249,  1110,  1111,   685,
    1060,  1061,  1478,   676,  3828,   883,   740,  2490,  1714,   792,
     623,  1062,  1063,  1064,  1065,  2724,  1216,   498,   734,  2477,
     499,   500,   736,  1719
};

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   STATE-NUM.  */
#define YYPACT_NINF -3732
static const int yypact[] =
{
   12124,   468, 10646, -3732, -3732,   468, -3732, 44093,   391,   136,
    1094,   141, 10240, 44497, 51365,   470,   265,  4871,   468, 51365,
    1861, 34793, 40053, 51365,   852,   562, 34793, 51365, 51769,   789,
     753, 52173, 44901, 38841,  1106, 51365,   836,   890, 52577, 45305,
     843, 45709,   562, 31985,    90,   788, 52981,  1473,  1392,  1090,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732,   391, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732,   210, -3732,   679,   297,  1351,   205,  1044, -3732,
   -3732, -3732, 36821, 51365, 51365, 51365,  1253, 51365, 51365,   147,
   36821, 51365, 51365,  1293, 28673, -3732, 51365, 51365, 51365, 51365,
   45709, 51365,  1238, 51365, 51365, 53385, 51365,  1432,  1078, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, 51365, 35157,   852, -3732, -3732, 51365,  1200, 36821,
   51365,  1221, 51365,  1312, 51365, -3732, 51365, 53789,   371,  1401,
   51365,  1454, 29090,  1389, 51365, 51365, 51365, 51365, -3732, -3732,
    1422, 51365, 51365, -3732, -3732, 54193,    35,  1654,  1598,   758,
   -3732, 46113, -3732, -3732, -3732, -3732, -3732, -3732, -3732, 46517,
     265, -3732, -3732, 37225, 51365,  1659, -3732, -3732, 54597, -3732,
   -3732,   568, 37629, 55001, -3732, 29507,  1733, 55405, 55809, -3732,
   -3732, 56213, -3732, 56617,  1527, 57021, -3732, 57425, -3732,  1688,
   57829, -3732,  1364,   870,   967, 25796, -3732,   391, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732,   345,  1388,   213,   189,
     240, -3732, -3732,   198,   203,   217,   345,  1844,  1844, -3732,
   51365, -3732, -3732,  1388,    21,  1472,  1472,  1472,  1689,   -25,
   -3732,  1472, -3732, -3732, -3732, -3732, 45709, -3732,  1476,   852,
    1503,  1851, 51365, -3732, 51365, -3732, 51365, 51365, -3732, -3732,
    1923,  1560,  1795,  1571, -3732,  1783,  1787,  1774,    69,   852,
    1673, -3732,  1882, -3732,  1806, 16628,   852, 46921, 58233,   338,
   46517,   852, 47325,  1649,  1078,  1821, -3732,   681, -3732,  2040,
    1677,  1895,  1571,  1078, 26616, -3732,  1685,   -29, 45709, -3732,
   -3732, -3732,   446,  1961, 17049, -3732, 51365,  1695, -3732,  1705,
    1712,  1730,  1351, -3732, 12124, 51365,  1057,  1057,  2111,  1057,
    1341,  1434, -3732,  1830, -3732,  2010,  1976, 45709,   788,   215,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732,  1746,   -29, -3732,   233, -3732,   108,  1745,  1207,
    1089, -3732, -3732,   757,  1858,   168,    24,  1796, 45709,  2858,
    1800,   736, -3732,  4811,   303, -3732, 51365, 51365, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732,  1804, -3732, -3732,
    1769,  1056,  1129,  3612,    71,  4997,  1350,   714,  1974,   777,
    2061,  1280,  5282, 51365, -3732,  2058,  2184,    75, -3732,   214,
   -3732,  1940,  2049,   864, 36821,  1903, -3732, -3732, 51365, -3732,
   -3732, -3732, -3732,   662, 36821, -3732,  2069, 29924, -3732, 51365,
   -3732, -3732, -3732, -3732, -3732,  2026, 51365, -3732, -3732,  2146,
   51365, -3732,  1472,   188,  1928,  2296, 65461,    77, 51365,  1972,
    2336,  2148,  1972,  1992, 58637, -3732, -3732,  1972, -3732, -3732,
   51365, 51365,  1969,  1127,  1972,  2356,  2357,  2037,  2139,   859,
    1107,   142,  2253,  1972, 51365, 59041, 51365, 51365,  2326, 36821,
   51365, -3732,  2125, -3732, -3732,   881, -3732, -3732, -3732, -3732,
    2267,  1746,   285,  2268,  1980,  2270, -3732,  2014, -3732,  2273,
    1800,  2275,  1983, -3732, 59445, 59849,  2279,  1804, 51365,  2282,
    1983,  2283,  2173,  2285,   285,  2287, -3732,   991,  2290,  2180,
    2293,  1528,  1983, 47729,  2295,   139, -3732, 18733, -3732,  2094,
   -3732,   788, -3732, -3732,  1243, -3732, 34389, -3732,   967,  1388,
   -3732, 51365,  1388, 51365,  1388, 51365,  1388, 51365,  1388, 51365,
   51365, 51365,  1388, -3732, -3732, -3732, 51365,  2013, 51365, 51365,
   -3732, -3732, -3732, 40861, 51365, 41265, -3732, -3732,    82,   852,
   -3732, -3732, 65461,  2406, 51365,  2297,  2297,  2297, -3732, -3732,
   -3732,  2237, 51365,  2305,  2306, 40861, 51365, -3732, 60253, 46517,
    2208,  2031, -3732, -3732, -3732, -3732, -3732,  1449,  2450,   279,
    2451, 18733,  2034,   190,   190,  2039, -3732, -3732, -3732,   248,
    2042,  2043, -3732,   178,   178,  2192,  2045,  2046, -3732,   260,
    2050,  2458,  2467,   268,  2052,  2053,  2054,  1225,   190, 18733,
   -3732,  2055,   178,  2056,  2057,  2059,  2476,  2060, -3732,  2479,
    2062,   182,   374,  2063,  2064, -3732,  2045, -3732,   245,  2070,
    2071,  2075,  2076,  2077,  2081,  2098,  2102, 18733, 18733, -3732,
   15786, -3732,   852, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
     130, -3732,   270,  5302, -3732, -3732,  2278, 18733, -3732, -3732,
      55, -3732,   280, -3732, -3732, -3732,   -29, -3732, -3732,   256,
    2065, -3732,  1626, -3732, -3732, -3732, -3732, -3732, -3732, 42073,
    2505, -3732,   295,   214,  1247,  2452, 33581, 33985, -3732, -3732,
    2332, -3732, 51365, -3732, -3732, 18733, 31581, -3732,   -29,   115,
   -3732, -3732, -3732,  1346, -3732, -3732, -3732,   391, -3732, 35192,
   -3732,  1407,  1695, 51365, 51365,  2510, -3732, -3732, -3732,  1705,
   -3732, -3732,  1351,  1351, 18733,  1351,   694,   567, 17470, 18733,
    2397,  2300,   199,  1081,  2399, -3732,  1341,  1434, 45709, 51365,
   60657,  2228, -3732, 32793,  1237,   -29,  2197,  2198,  2243, 36013,
    2126,  2202,  2205,  2250,  2212,  2215, 61061, -3732, -3732, -3732,
   -3732,  1307,   695,  1045,  2216,   649, -3732,  2252, -3732, -3732,
   -3732,  3185, 51365,  5405,  2323,   303,  2259, -3732,  2220,  2224,
    2341,   303,  1087, 61465, -3732, -3732, -3732, -3732, -3732,  2952,
   14579, -3732,  2230,  2211, 38033,  2514,  2333,   947,  1645,   171,
   51365,  2408,  2344, 51365,  2163,  2238,  2239,  2164,  1031,  2519,
    2169, -3732, -3732, -3732,  1572,  2342, -3732,  2219,  2231, 64675,
     545, 30341,  2502,  2251, -3732,   898,  2254,  2255,   303, -3732,
    2558,   303,   303,  1435,  2560,  2261,   342,  1162,  1972,  2169,
    2524, -3732,  2262,   234, -3732,  2364,   153,  1474,  2169,  2264,
    2265,  2164,  2164, 51365, 51365, 51365, 51365, 51365,   167,  2583,
    2584,  2274,   174,  2317,  2199, -3732, 42477,  2277, 58233, -3732,
   -3732,  2280,  1479,  2169,  1226,  1317, -3732, -3732, -3732,  1078,
   -3732, 51365, -3732, 51365,  1746, 65461,  2380,  2240, -3732,  1800,
     303, 51365, 51365,  1804,   150,  1028,  2384, 51365,  2440,  2244,
   -3732, -3732,  1972, -3732, 33187,  1969, -3732,  2213, -3732, -3732,
    2257, -3732,  2257,  2257,  2222,  2222,  2225, -3732, -3732, -3732,
    1225,  2257,  2222, -3732, 66247, -3732,  1109,  1267, -3732,  2603,
    2605, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
     730,  1466, -3732, 51365, 36013, -3732,  2618, -3732, -3732, 65461,
    2508, -3732, 51365,  2416,  2229, -3732,  2536,  2284, -3732,  2271,
   -3732, 51365,   762,   852,  2269, 51365,  2444, 51365, 51365, 51365,
   51365, -3732, -3732,  2412,   782,    81, -3732, 42477, -3732,  2524,
    2427,  2628,    33,  1472,  2515, -3732, 51365,  2260,  2630,  2465,
   -3732,  1214, -3732,  2360, -3732, 36821,   285, -3732, -3732, -3732,
   -3732, 65461, 51365, 61869, 36821,   285, 51365, 51365,  2529,  2302,
    2541,  2307, 30341,   285,   151, 51365, 51365, 51365, 51365, -3732,
   51365, -3732, -3732, -3732, -3732, 51365, 51365, 51365, 42477,  2542,
    2543,   285, 51365, 51365, -3732, 35192,  1494, 51365,   967, 41669,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, 51365, -3732,
   51365, -3732, 51365, -3732, 51365, -3732, 51365, -3732, -3732, -3732,
   51365, -3732, 51365,  1500, -3732, -3732,  1504,   138, 51365,   680,
   36821, 51365,  2442, 51365, 51365, 51365, 51365,  2330,  2065,   427,
   -3732,   728, 45709,  2449, -3732, -3732,  1508,  1473,     8, -3732,
   -3732, -3732, -3732, -3732, -3732, 41265, 40053,  2537,   320, 51365,
   -3732, -3732,  2393, 18733,   -29, 16207, -3732, -3732, -3732,  2272,
   35192,  2303, 18733, -3732, -3732, 18733,  1844,  1844, 18733, -3732,
   -3732, -3732, -3732,  1438,  1844, -3732, 18733, 18733,  1844,  1844,
    2257,  2257, -3732,  8190, 18733, -3732, 30341, 18733, 21259, 13344,
   18733,  2345,  2288,  1844, -3732,  1844, -3732, 18733, 15365, -3732,
   18733,  2475, 22095, 18733,  1247,  2478, 18733,  1247,  2691,  2691,
    1775,  5378,  2276, -3732,  2388,  1844, -3732,  1844,   740, -3732,
     196, 65461, 18733, 36013,  2359,   179, 51365, 18733,  2286,  1509,
   -3732, 18733,   254, -3732,  2289, 18733,  2361, 18733, 18733, 18733,
   18733, 18733, 18733, 18733, 18733, 18733, -3732, 22915,   202,    15,
     880, 48133, 16628,  2564, 12922, -3732,   177, -3732, -3732, -3732,
   51365,  2505, -3732, -3732,  2358, -3732, -3732, -3732, -3732, -3732,
     282, -3732, -3732, -3732, -3732, -3732, -3732,  2292, -3732, -3732,
   -3732, -3732,  2292, -3732,  2291,  4013, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732,  2552,  2553,   285, 51365,   446, 42881, -3732, 17049, -3732,
    1526,  2299, -3732,  2533, -3732,  2298, -3732,  9437,  2533, -3732,
   -3732,   292,  2480,  2487,  2487, -3732,  2304, 35192, -3732,  1395,
   35192,  1458, -3732, -3732, -3732, -3732, -3732, -3732,   811, -3732,
    2397,  1081,  2363,  1002, 51365, -3732, 27026,  2308,  1546,  2379,
    2385,  2430, 51365, 51365, 51365, -3732, 36013, 51365, 51365, 51365,
   51365, 51365, 51365, -3732,  2662,    44, 40053,  2432, 39245, -3732,
   -3732,  2316, 51365,  2371,  2545,  2549,   784, -3732, -3732, 51365,
   -3732,  2509, 51365, 18733,  2511, 51365, 51365,  2396, 36821,  2325,
   51365, 51365, 51365,   674, 36821, 30758, 51365, 51365, 51365, 51365,
    2441, 51365, 51365,  2557,   663,   211,  1575,  2169,  2520, -3732,
    1163, 51365, 51365,  2512, -3732, -3732, -3732, 46517, -3732, -3732,
   -3732,  2503, -3732, -3732, 66247, -3732, -3732,  1550, -3732, 65854,
   63485, -3732, -3732,   448, 51365, 51365, 51365,   889, -3732, -3732,
   65461, -3732, 51365, 51365, 51365, 43285, 62273, 62677,   975,  1079,
   51365, 43689, -3732, 51365, -3732, -3732, 36417, 51365, 51365, 36013,
   -3732, 51365,  2516,   247, -3732, 51365,  3732, -3732,  2409, 51365,
   51365,  2331,  1566,  2411,  2456, -3732, 51365, 51365,  1520, -3732,
   51365, 51365, -3732, -3732,   303, -3732, -3732, -3732, -3732, -3732,
   51365, 51365,   303, 51365,   303,   726, -3732, 51365, -3732, -3732,
   -3732, 51365, 51365, 51365, 51365, 51365, -3732, -3732,   846,  1050,
      56,  1305,  2474, 51365,   852, 51365, 63081, 51365, 51365, 51365,
   51365,  1149, -3732, -3732,  2453, -3732, 51365,  1520, 51365, 51365,
    2415,  2421,   191,  2493, -3732, -3732, -3732, -3732, -3732, -3732,
    2575,  2742, 51365, -3732,  2586,  2587,  2403,  2404,  2589,   250,
   51365, 51365, 51365, 51365, 51365, 51365,  2591,   250,  2546,   131,
    2366,  2381,  1573, -3732, -3732, 18733,  2762, 65461,  2372,  2373,
    2445,  2446,  2447, -3732,  2375,  2454,  1844, -3732, -3732,  1518,
   -3732, -3732,  1583, -3732,  2389,   782,  1791, -3732, 51365,   592,
     105,  2666, 14168,  2486,  1811,  2657, 51365, 51365,  1811, -3732,
    1952, 40053, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732,  2656, -3732,   852,  1969,  1969,  1969,  1969, -3732, -3732,
   -3732, -3732,  2566,  1382, -3732,  2387, 51365,  2496,  1811, -3732,
    2524,  2674,   100, 51365, 38437,  1590,  2781,   852,  2571, -3732,
   14972,  4211,  2572, 46517,  2658,  2659,  2679, -3732,  1746, -3732,
    2788, -3732,  2692,   285,  1800, -3732,  1983, -3732, 51365, 51365,
   51365, 51365,  1804, -3732, -3732,  1983,  2580,   285,   285, -3732,
    2582,   285,  1983,  2513,  2684, 46517, -3732,   139, -3732, -3732,
   18733,  2407, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
    1588, -3732, 51365, -3732,  2663,  2669,  2670,  1983,  2459, 51365,
    2405, -3732,  1983,   303,  1983,  2065,  2065,  1983, 48537,  2822,
    2686,   144, -3732,   145,    62,  2623, -3732, -3732, -3732, -3732,
   65461, -3732, -3732, -3732, -3732, -3732, 51365,   140,  2599,  2418,
   48537,  2805,   285, -3732, 36821, -3732, -3732,  2517, 36821,  2615,
   -3732, -3732, -3732, -3732, -3732,  2661, 51365,  1609, -3732, -3732,
    1321, -3732,  1380, 18733, 18733,   186, -3732, 11290,  1615,  2436,
    2437,  1616, -3732, -3732, -3732, -3732, -3732, -3732, -3732,  2438,
    2713, -3732,  2443,  1623,  1633,  2448,  2455, -3732, -3732,  4398,
    2460, 11555,  2461, 21259, 21259,  1814, -3732, -3732, 21259,  2463,
   -3732,  1635, 10323,  2464,  2466,  2462, -3732,  2470,  2471, 11615,
   17891, 18733, 17891, 17891, 11566,  2464,  2472,  1641, 36013,  2608,
   11897,  1653, -3732, 18733, 36013,  4483, 18733, -3732, 18733, 51365,
    2473,  2481, -3732, -3732,  8190, -3732,  2468, -3732, 21259, 21259,
   -3732,  2030, 15786, -3732, -3732,  2715, -3732, -3732,  1536, -3732,
    2477, -3732, -3732,  2369,   181, 18733,  2286, 18733,  2521, 30341,
    6896, 18733,  1495,  2101,  2101,   393,   393,   294,   294,   294,
    1622,   880, -3732, -3732, -3732,  2484,  2060, 18733, -3732,  1663,
    1860, 51365,  2563,  3412,  3952, -3732, -3732, -3732, 24156,  2489,
   18733, 18733, 18733,  2485,  2624,  2864, 35192,   705, -3732,  2870,
   -3732,  1078,  1844,   740, 34389, -3732, -3732, 18733, -3732, -3732,
   -3732,  1705, -3732, -3732, -3732, -3732, -3732,  1473, 18733, -3732,
   -3732,  1012,  1656, 18733,  1395, -3732, -3732, 51365,  2449,  2449,
   18733, -3732, -3732, -3732, -3732, -3732, 24156,  2518,  2525, 26206,
    2614, -3732, -3732, 51365,   156, -3732, -3732, -3732,  2501, -3732,
   -3732, -3732, 51365, 51365, 51365, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732,  2705, -3732, 51365, 51365,  2668,
   51365,  2671,  2672, 18733,   185, 51365,  2495,  2498,  1251,  2743,
   51365, -3732,   285, -3732, -3732, 35192, -3732, -3732, -3732, 46517,
   -3732,  1746, 65461, -3732, -3732, -3732,  2531, 51365, -3732, 51365,
   51365,  1804, -3732, -3732, -3732, -3732,  1067, -3732, -3732, 51365,
   51365,   614,  2574, 51365, -3732,   956,  2364, 51365, 51365, 51365,
    2744, -3732, -3732, -3732, -3732,  2695, -3732, -3732,  1466, -3732,
   63485, 65854, -3732, 65854, -3732,  1466,   923, -3732,  1983, -3732,
   -3732,   137, -3732, -3732, -3732, -3732, -3732,  2793,   285,  2794,
     285, 51365, 51365, 51365, 51365, -3732, -3732, -3732, -3732, -3732,
   36013, 36013, 36013,  1658, -3732, -3732,   852, -3732, -3732, -3732,
    1660, -3732,   -55, -3732, -3732, -3732, -3732, -3732, -3732, 51365,
    1405, -3732,   208, 65461, -3732, 65068, 51365, 51365, -3732, -3732,
   -3732,  2726,  2673, -3732,   563,  2675, 51365,  2567, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,  2592,
   -3732, -3732, -3732,  2719,  2722,  2724,  2593,  2595,  2635,  2596,
    2598,  2644, -3732,  2604,  2647,  2607,  2649,  2609,   285, 65461,
    1717,  2640,  2829,   285, -3732,  2616, -3732, -3732,  2927, -3732,
   51365, -3732, -3732, -3732, 51365, 51365, -3732, -3732, -3732,   250,
   65461,  2774,   250,   250, 51365, 51365,   250, -3732, -3732, -3732,
    2776,  2777,  2778,  2779,  2782,  2783,   250, -3732, -3732, -3732,
   -3732,   188, 36013, -3732,  2862, 28256, -3732,  2969,  5749,  2554,
    2373,  2556,  1844,   172,   746,   113,  2667,  1844,  2757,  2561,
   -3732, -3732, 36013, 28256,  1582,  2775,  2588,  2588,  2588,  2588,
    2588,  2588,  2588, -3732,  1469,  1972, 46517, 51365, 46517, -3732,
     105,  2732, 51365, -3732, -3732,  1670, -3732, 51365, 51365,   642,
   51365,  1844, -3732, -3732,  2633, -3732,  1472,   762,  2702,   909,
    2898, -3732, -3732, -3732, -3732, -3732, 51365, 51365,   782,   852,
    2576,  2578, -3732, 51365, 51365, 51365,  2620,  2594, 51365,  2579,
    2600, -3732, -3732, -3732, -3732,  1676, -3732, 65461,   645,  2763,
    2765,  1473,  2664, 51365, -3732,  1681,   104, -3732,   852, 46517,
   63878, -3732,  3565, -3732, -3732,   641,  2852, -3732, -3732,  1473,
     285, 65461, 51365, -3732,   285,  2645,   285,  2651,   285,   285,
   51365, -3732, -3732, 51365, -3732, 51365, 42477,   285, -3732, 35192,
   51365, -3732, -3732,  2712,  2727,  2729, 51365,  1983, 36821, -3732,
    2601, 51365,   496, -3732, -3732,  2784, -3732, -3732, -3732, -3732,
   -3732,  2893,  2904, -3732, -3732, -3732, 51365, 40861,   155, 51365,
   -3732,  1746, -3732,  1800,   303, 51365,  2839, -3732, -3732, -3732,
    2622,  1694, 12323, 18733, -3732,  2919, 65461, -3732, -3732, -3732,
   -3732, -3732, 18733, -3732, -3732, -3732, -3732, -3732, 18733, -3732,
   18733,  2896, -3732,  3038,  3038, 65461, 21259,  1352,  2056, 21259,
   21259, 21259, 21259, 21259, 21259, 21259, 21259, 21259, 23336,   979,
   -3732, -3732, 18733, 18733,  2905,  2896, -3732, -3732,   999,   999,
   65461,  2631,  2464,  2632,  2634, 18733, -3732, -3732,  1702, 22505,
    2636, 36013, -3732, 18733, 10467,  1703,  2677, 12438,   -29,  6735,
   -3732,  2994,   852, 18733,  1829,  1843, 18733,  1707, 18733,  2911,
   -3732, -3732, -3732,  2639, -3732, -3732, 65461, 18733, 21259, 21259,
    2878, -3732,  3601, 18733,  2641,  5819, 15786, -3732,   562,   562,
     562,   562, -3732, 51365, 51365, 51365, 23746, 48941,  2627,  2189,
   -3732, 48941, 49345, -3732,  2643,   -29, 18733,  2906,    67,    67,
    2648,  2624, 27436, -3732, 18733,   319, 18312,  2650,   214,  2653,
   -3732, -3732,  9374, -3732,  2655, -3732,  2652, -3732,  1656, -3732,
   -3732, -3732,  6978,  2817,  2065, -3732, -3732, -3732,  2627, 19154,
    2614, -3732,  1723, -3732, -3732, 16628, -3732, -3732,  1729, 27026,
    2518, 17049,   -29, -3732, -3732, -3732,  2588,  1983,  1983,   785,
    1983,  2923,   785,  7233, -3732, -3732, 24566, 51365, 51365, -3732,
   51365,  1737,   994, -3732, -3732, -3732,  3042, 51365, -3732,  2709,
    2714, -3732, 51365, 51365, 51365, 51365, -3732, -3732,  1745, -3732,
   -3732, 51365, -3732, -3732, -3732, -3732,  2733, -3732, -3732,  2907,
    1313, -3732, -3732, -3732,  2728,  1469,   223,  2164,   624, -3732,
    2738, 51365, -3732, 51365, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, 36417, -3732, -3732, -3732, 36013, 28256, 36013,
   -3732,  2736,  2749,  2795,   810,   666,  2750,  2754,  2801,  2685,
    2687,  2689, -3732, -3732,   345,   852, -3732, -3732,   852,  1983,
     852, 51365,  2963,   899,  1594, 51365, 51365, 51365, 51365, 51365,
   51365, 51365, 51365, 51365, 51365, 51365, -3732,  3044,   852,   852,
    3018,  2758, 51365, -3732, 51365,  2364, -3732, -3732, -3732,  2694,
     250, -3732, -3732,  2931,  2937, -3732,   250,   250,   250,   250,
     250,   250, -3732,   119,  1747, -3732, 25386, -3732, -3732,  2336,
     852,  2336,  1075, -3732,  2336, -3732,  2336, -3732,  2652,  1844,
    1572, -3732, -3732, -3732, -3732, -3732, -3732,  2381, -3732, -3732,
    1844,  1727,  2707, -3732,  2708, -3732, -3732, -3732, -3732, -3732,
   -3732,  2720, -3732,   740, -3732, -3732, 51365,  2588, -3732,  1353,
     330,   333,  1115, 49749, 50153, 50557,  2710, 51365, 51365, 21259,
   -3732,   768,   222, -3732,  2936, 51365,  2747, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732,  2723, -3732,  2229, -3732, 51365,  2732,
    1983, 51365, 51365,  1983, -3732, 65461,  3101,   870, 59041,  2745,
    2711,  2998, -3732,  2721,  2735, -3732, -3732, 51365,  2732,    51,
    1364,   218, -3732, 39649,  1590, -3732,  2972, 38437, -3732, 51365,
   -3732, -3732, -3732,  3078,  2812,  2771,   852,  2371, -3732, 63485,
   18733, 18733, -3732,  2737, -3732,  2740,  4334, -3732,  1969, -3732,
   -3732, -3732, -3732, -3732, -3732,  2819, 51365, -3732, -3732,  2746,
     285, -3732, 51365, -3732, 51365, -3732, -3732,   285,   285, -3732,
    2856, -3732, -3732, 51365, 51365, 51365,  1983, -3732,   303, -3732,
    3012, 48537, -3732, -3732, -3732, -3732,   320,  3022, -3732, -3732,
    2983,  2984,  2986,  2988,   780, -3732, -3732, 18733, 35192, -3732,
    2756, 35192,  7561, 35192,  2905, -3732,  1798,  3031, -3732,  1114,
    2760,  1798,  1292,  1292,   350,   350,   173,   173,   173,  3038,
     979, 35192, 35192, -3732, -3732, -3732, -3732,  2761, -3732, -3732,
   -3732,  2464, -3732, 19575,  2902,  3139, -3732, -3732, -3732,  2802,
    2806,  2764, -3732, 18733, 19996,  2768, 66247, -3732, -3732,   740,
     812, 21259, 21259,   986, -3732,   998, 18733, 65461,  1751,   986,
    2091,  2112, 18733, 18733,  6377,   238, 18733,  7684, 51365, 51365,
   51365, 51365, -3732, -3732, -3732, 13757,  2189,  2772, 51365, -3732,
    2780, 24156,  3003,  2945, -3732, 24156,  2945,  1383,  2945,  3005,
   -3732, 27846, -3732,  2785, 12922,  1387, 35192,  3153,  3045, 18733,
    2786, -3732,  2789,  2624, -3732, 64271, -3732, -3732, 35192, -3732,
   -3732, 18733, -3732,  2624,   852, -3732, -3732, 30341, -3732, -3732,
   -3732,  2961, 35192, -3732,  1473, 51365,   -29,  2787,  2797, 51365,
   -3732,  2614, -3732,   345, -3732, -3732, -3732,  2854, 40053,  3059,
   -3732, 18733,  1758, -3732,  2828,  3152,   134,  1759,  1771,   994,
   -3732,  2747, -3732,   995,   125, -3732, 65461, -3732, 51365, 51365,
   -3732, -3732, -3732, -3732,  2126, -3732, 51365, -3732,  2860, -3732,
    2987, -3732, -3732,  2989,   345, 51365, -3732, 65461,   285,   285,
   -3732, -3732, -3732,  2816, 51365, 51365, 51365,  1844,  1844, 65461,
    2807, -3732,  1844,  1844,  2808, -3732, 51365, 51365, 51365, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, 51365, 51365, 51365,
   51365,  3095, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, 51365, -3732, -3732, -3732, 65461,   285,   285,
   -3732,  3046, -3732,   250,   250, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732,  1972,  3126, -3732, 36013, -3732, 40457, -3732, -3732,
   -3732,   852, -3732,   852,  3002, 32389,   852,   852,   994,  2818,
    1254,  3089, -3732, -3732, -3732, -3732,  3093,   345, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, 18733, -3732,   732,  1798, -3732, -3732, -3732,
   -3732,  2747,  1472,  2873,   592, 36013,  2933, -3732, -3732,  1983,
    1983,  2875,  1473,   578, 51365,  3129,  2866, -3732,   852, -3732,
   -3732, 51365, 38437, -3732, -3732,  3157,  1780, -3732, -3732, -3732,
    2865,  2765,   748,  2833,  1590, -3732, -3732,  1255, 51365, -3732,
     844, -3732,  3107,  2835, -3732, 35192, 35192,   852, 66640,  3565,
   -3732, 51365,  3081,   285, -3732,   285,   285, -3732, -3732, 51365,
    1983,  1983,  1983, -3732,  3013, -3732,   285, 48537,   780,   780,
     780,   780, -3732, -3732, -3732, 35192, -3732, -3732, -3732, 21259,
    3110, -3732,  2840, 65461, -3732,  2841,  1810,  1841, 22095,  2982,
   -3732, -3732, -3732,  7900,  2891, 35192,  2941,  2845,  2847, -3732,
     903,   903,   998,  1859, -3732, 21259, 21259,   986,   986, 18733,
     986, -3732, -3732, -3732, -3732, -3732, 48941,  2850, 51365,  2189,
   24156, -3732, -3732,  1704, -3732, 24156,  3080, -3732, 24156, 51365,
    2853, 51365,   725, 18733, 18733,  2887,  2624,  2624, -3732,  3016,
   -3732,  2855, -3732,   740,  2857, 51365, -3732, -3732,   788, -3732,
   -3732, -3732, 48537,  3035, 48537,   994,  8172,  2747, 24566, 31175,
   51365, 50961, 50961,  2997,  2747,  2873, -3732, -3732, -3732, -3732,
    2859, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,  3044,
   -3732, -3732, 28256, -3732, -3732, -3732, 24976, 30341, -3732,   810,
    2867,  2868,   666, -3732, -3732, -3732,  1021,   863,  2900,  1983,
    3140, -3732,  3044, -3732, -3732,   250, -3732, -3732,  2366,   852,
   -3732, -3732,  1863, -3732, -3732, -3732, 51365, -3732,  2711, -3732,
   -3732, -3732, 36821,  3256,  3256, 51365, -3732, -3732,  8668,  3064,
   -3732,  2873,  3085,  3131, -3732,  1864, -3732, 51365, 51365,  2771,
   38437,  2732, -3732,  1257,  2879,  3173, -3732,  2594,  2885, -3732,
   -3732, 39649,  3061,  2812,   212,   212, 51365,  2765,  3009, -3732,
    3010, -3732,  3254,  3068,  3257, 51365, 24566, -3732, 65854, -3732,
    1872, -3732, -3732,  2489, 51365,    94, -3732, -3732, -3732, -3732,
   -3732, -3732,   155, -3732, -3732, -3732, -3732,  1375, 21259, 65461,
    1886, 18733, -3732, 18733, -3732,  3271, -3732, -3732, -3732,   622,
   -3732, -3732, -3732,   903,   903,   986, -3732, 51365,  1896, -3732,
   18733,  2897, -3732, -3732, 24156,  1704,  1897, 51365,  1898, 65461,
    2624,  2464, 35192, 51365, -3732, -3732, -3732,  3273,  3071,  2624,
   -3732, -3732, -3732, -3732,   496,   785,   155,  3152,  2873, -3732,
    2901, -3732, -3732, 51365, -3732,   290,   290, 51365,  2873, -3732,
   -3732,  2958, -3732, 65461,  1800,   123, -3732, 65461, 65461, -3732,
   51365, 51365, 51365, 51365, 51365,   285, -3732, -3732, -3732, -3732,
   40457,  2711,  3256,   850, -3732, -3732, -3732,  1037, -3732, -3732,
     878,  3086,  2981, -3732, 36013,  2732,  3190, -3732, -3732, -3732,
   -3732, -3732, 18733,  3057,  1590,  2972, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732,  1909,  2812, -3732,
   -3732,  3090, -3732,  3091, -3732,  1917, -3732, -3732,  4334, 66640,
    3218, -3732,  2965, 51365, -3732, -3732, -3732,  1375,  1918, -3732,
    1926,  1931,  3058,  2970, -3732,  1933, -3732, 35192, 51365, -3732,
   -3732, -3732,  1938, -3732,  2914, -3732,  3317, 18733,  1322, -3732,
   -3732,  3199, -3732, 50961,  2964, 30341, -3732,  1656,  1656,  1472,
   -3732,   994, 18733, -3732,  1942, -3732,  1053,  3069,  3207,  1947,
    1948,  2926,  2967,  2926, -3732,  1983, -3732, -3732, -3732, -3732,
   -3732,  3236, -3732, -3732, -3732,   291, -3732,  3114,  3115, 51365,
   -3732, -3732, 51365,  3334,  8789, 36821,  2765,  1590,  1469, -3732,
   -3732, -3732, -3732,  2979, 24566,  3565, -3732,   775, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732,  1949, -3732, 51365,  2949,
    2464, 20417, 20417,  2954, 48537,   290,  2953, -3732,  2956, -3732,
   -3732,  3085,   994, 35192, 36821,  3333, -3732, -3732, -3732,  3069,
   -3732, -3732, 51365,  3084,   756,   756,  3274, -3732,  3021, -3732,
   -3732, -3732,   810, -3732,  2968,  2812,  2765,  2164,  2812, -3732,
   -3732, -3732, -3732,  1690, -3732, -3732, -3732, 21680,  3092,   660,
   11047, -3732, -3732, -3732, -3732,   155,  1656, 18733,   994, -3732,
    3086,  1800, 51365, -3732, -3732,  2866, -3732,  3370, -3732,   207,
   -3732, -3732,  2807, 35609, -3732,  2812, -3732,  2489, -3732,  1718,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732,  3364, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732,  9110, -3732, -3732, -3732,  3260,
   -3732, -3732, -3732, -3732,  1954, -3732, -3732, -3732, -3732, -3732,
   -3732,  1825, -3732, -3732,  1848,  1730, 20838, -3732,   994,  3119,
   -3732, 35609, -3732,  1718, -3732, 36821, -3732, -3732,  2973, 35609,
    1962, -3732
};

/* YYPGOTO[NTERM-NUM].  */
static const yytype_int16 yypgoto[] =
{
   -3732, -3732, -3732,  2703, -3732,  -721,   321,  2129,  -548, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
    2654, -3732, -3732, -3732,  1381, -3732, -3732,   124,  1779,  2312,
    1088, -3732,  -893, -3732, -3732,  -461,   146,  -576, -3732, -3732,
   -3732, -3732, -3732, -3732, -3732,  -504,  1517,   950,  -268, -2248,
   -3732, -1189, -3732, -3732,   417, -3732, -3732,  1465, -3732, -3732,
   -3732,   826,  -320, -3732, -3732, -3732, -3732, -3732, -3732, -3732,
     -66, -3732, -3732,  -480, -1271,    36,  -131,  -354, -3732, -3732,
     257,  -355, -1126, -3732, -2374, -3732,   -98, -3732, -3732, -3732,
    -357, -1128,  1036,  -590,  -914,  1309,  -629, -3732,  -255, -3732,
    -676,  -583,  -580,  -637,  -489, -3019, -3386, -3576, -2889,  1042,
     149, -3732, -3732, -3732,   272, -3732, -1267, -3732, -3732,  2066,
   -1100, -3732,  -674, -3732, -3732, -3732, -2337, -3732, -3732, -3732,
   -3732,    87, -3732, -3732, -3732, -3732,   313, -3732, -3732, -3732,
   -3732, -3732, -3732, -2159,  1424,  1425, -3732, -3732, -2977, -3732,
    -734, -3732,   453, -2360,   966, -3732, -3732, -3732,  2074, -3732,
   -3732, -3732, -3732,   314, -3732,   311, -3732, -3732, -1287, -3732,
   -3732, -1261, -3732,  1436,   796, -3732, -3732, -3732,  -656,  -719,
    -710, -3732, -2793, -3732, -3732, -3732, -3732, -3732,  -793, -3732,
     851, -2478,  -754, -3732, -3732,   865, -3732, -3732, -3732, -3732,
    -616,  -252,  2103, -3732,  -527,  -601, -3732, -3732, -3732,  -249,
   -3732, -3732, -3732, -3732, -3732, -3732, -1391,   -95, -1264, -3732,
   -3732, -3732, -3732, -1785, -3732, -3732, -3732, -1730, -3732,  3438,
    1826,   408, -1257, -3732,   -21,    70,  2522,  -892, -2075,   255,
    -389, -3732, -1425, -3732, -3732, -3732, -2004, -3732, -3732, -3732,
   -3732, -2788, -1256, -3732, -3732, -3732,   302, -3732, -3539, -3213,
   -3445, -2960, -2768, -3732, -3732,  -870, -3732, -3732, -3732, -1081,
    1620, -1160, -3732, -1756,   304, -3037,  -581, -2586, -3732, -2965,
    -468, -3732, -3732, -3732, -3732, -3732, -3732, -3732,  -854,  -513,
   -3732, -3732,  2925, -3732, -3464, -3732, -3732, -3732, -3732,  1136,
   -3732, -1045,   935, -3732, -3732, -3732, -3732, -3732,  -604,  -683,
   -3732, -3732, -3732,   154, -3732, -3732, -3732, -3732,  1715,  -746,
    -592,  2809, -1249,  -276, -3732, -3732, -3732, -3732, -2432, -3732,
   -3732, -3732, -3732, -3732, -3732, -3732, -1263, -3732, -3732, -3732,
   -3732, -3732, -3732, -3732,  1760,  1761,    61,   -18, -3732, -3732,
    -998, -3732,  -447, -3732,  2051, -3732, -3732, -3732, -3732,  1157,
     158,   343, -3732,     3, -3732, -3732,   133, -2739,     4, -3732,
   -3732, -3732, -3732,  -193,     5, -3732,   583, -3732, -3732, -2229,
   -3732,   159,    57, -3732, -3732,     1,     0,   -41,   -39,   -35,
       2,  2813,  2390, -3732, -3732, -3732,   -13,  1579, -3732,  -689,
    -156, -3732,  1166,  -533,  1740,  2370,  2367, -3732,  1164, -3732,
   -3732,  1172, -3732, -3732, -3732,  -530,  1749, -3732,  2376,  1763,
   -3732,  1158,  1165, -2701,   657, -2705,   200, -1014,  -319,    46,
    2837,  2382, -3732, -3581,   608, -3732, -2819, -1814,  -304,  1535,
   -1265, -3732, -3732,  -938,  3753, -3732, -3732, -3732,  5430,  6581,
   -3732, -3732,  7215,  9004, -3732,  -725,   702,  9076,  1772,  -955,
   -1511,  -639,  8574, -2106,  1515, -2198, -3732, -3732, -3732,  -287,
     713,   834, -3732, -3732, -3732, -3732,  -511, -2135,  -509, -3732,
   -3732, -3732,  -514, -3731, -1167, -3732,  -165, -3732,  8771,  1205,
   -3732,  -789, -2156, -2172,  -917, -1390, -3732, -3732, -3732, -3732,
   -3732, -3732, -3732, -1386, -2622,  -374,  1272, -3732, -3732,  1365,
   -3732, -3732, -3732, -1056,  -697, -2087,  1275, -1606, -3732,  -691,
     638,  1943,  -641,    27,  -539,  6082,  -430, -1825,  -989, -1212,
   -3732,  -159, -3732,    25,    -9,  -142,    11,  3189,  5068, -1042,
    7155, -1035, -1011, -2456
};

/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
   positive, shift that token.  If negative, reduce the rule which
   number is the opposite.  If zero, do what YYDEFACT says.
   If YYTABLE_NINF, syntax error.  */
#define YYTABLE_NINF -2120
static const yytype_int16 yytable[] =
{
     162,   161,   166,   156,   157,   159,   691,   552,   701,   842,
    1405,   508,   647,   732,  1136,   624,  1070,  1142,  1880,   768,
     162,   750,   166,  1443,   882,  1466,   941,   942,   890,   678,
    1850,   946,   613,  1413,  1797,  1486,  1145,   613,   902,   751,
    1244,  2097,  1720,  1280,   771,  2121,   612,   690,   536,  1358,
    1224,   612,   887,   781,  1715,  1519,  1520,  2242,  1376,  1986,
    1269,  1717,  1926,  1927,   496,  2492,  1859,  1546,  1858,  1957,
    1305,   543,  1083,  1497,  1535,  2738,  2965,  1999,   737,   739,
    1215,   587,   743,   744,   829,  1718,  2952,   675,   866,  1720,
    2047,  2023,   619,  2442,  2444,  2024,  3179,  2773,  2774,   779,
    2863,  2025,  2789,   648,   579,  2026,  2027,  1715,  1347,  1848,
    2979,  1351,  2981,  2028,  1717,  2171,  1355,  1396,  1436,  2538,
    3348,  1732,  2325,  1360,  2907,  3095,  2726,   703,   876,  3076,
    2870,   704,  1378,   695,  3369,  3551,  3379,   910,  1718,  3569,
    1916,  2093,  2824,  2825,  2868,  2869,    64,  3076,  2863,    74,
    2818,  3523,  3528,  1867,   133,  3306,  3320,  3322,   154,   160,
    1775,  3353,   666,  3682,  1160,  3773,   702,  1130,  1188,  2873,
    1133,  3540,  3253,  1375,  2059,  3100,  3101,  3102,  3103,  3104,
    3105,   595, -1789, -1433,  2775,   506,  1168, -1476,  1564, -1899,
    1397,  2635,  2577,   548,  1721, -1466,  1868,  3918, -1933,  1077,
    3680,  1922,  1397, -1952,  1933,  1270,  1397,  3170,  2045,   753,
   -1266,  1938,  3940, -1835,  2247,   773,  2247, -1977, -1683,   966,
   -1812,  1861,   595,   782,  2282, -1683,  2994,  1343, -1812,  -337,
    3688,  2283,  1299,  2655,  3919,   922,   775,  3866, -1813,   548,
   -1902,   681,  1445,   747,  1601,  1791, -1813,  3936, -1466,   595,
   -1461,  1562,  1481, -2119,  2696,   548,  2698,  2966,  1513,  1514,
   -1699, -2119,   926,  2556,  2420, -1446,  2953, -1699,  3986,  1239,
     548,  1248,  2912, -1473,  2053,   548,  2727,  2729,  1273,  1861,
    3895,  2579,  3920,  1532, -1466,   548,  3488,   548,  1169,  3921,
    2736,  2114,  3541, -1266,  1293,   937,  2264, -1269,  1615,  1213,
     548,   595,  2004, -1461,   595,  1571,  2298,  1213,  2753,  1717,
    4141,  2485,   595,   705,  3544,  1793,  3922,  2286,   698,   784,
    1204,  1277,  2329,  3942,   548,   944,  1800,  3519,  2995,  1242,
    1574,  3088,  1794,  1718,  2421,   548,  1397,  1280,   548,   601,
    1126,  1969,  -722,   548,  2377,  2533,  -118,   854,   601,  1414,
     824,  -118,  4020,   601,   595,  2988,  4127,   768,  2146,   602,
    1576,  2775,  1607,   601,  2731, -1266,  1146,   601,   602,  1606,
    2989,  2207,  1546,   602,  2534,   855,  1519,  1520,   837, -1476,
   -1269,   503,   844,   602,  1535,  2207,  3923,   602,   706,  2408,
     601,  3928,  1095,   853,   871,  1970,  1096,  1147,  1616,  4064,
     768,  2330,   945,   880,  1571,  1479,  1128,   785,  1619,  1722,
     602,    37,  1630,  1630,  2378,  1488,  3685,   827,   856,  1964,
    2265,   830,  1994,  1608,  2266,  4164,  1148,  1498,  3998,  1574,
    2967,  2732,  2288,  3501,  1398,  1407,  3503,   851,  2287,  1968,
      41,  1074,  1431,  4142,   938,   786,  1398,  3545,  2168,  1149,
    1398,  2115, -1269,  1243,  3400,  2968,  2054,  1795,  3520,  1576,
    2267,  2953,   549,  1869,  2728,  2730,  2996,   833,  1278,  3943,
    1918,  1447,     3,     4,  3542,  1870,  2151,    45, -1433,  2116,
    2423,  2580,  1602,  1319,  3363,  4079,  2567,   748, -1951,    46,
    3471,  2486,   544,   787,  3329,   821,   945,  2997,  3689,  4114,
    1344,  1829,  4117,  1921,  2046,  1617, -1266,  1834,  1501,  1482,
    3412,  1920,  1984,   682,  3171,  1912,  2248,  1914,  2838,  1300,
    1301, -1683,  1329,    47,  1939,  1871,  2998,  2284,  4045,   791,
    1960,  2245,  3076,  1956,   822,  3777,  4150,  1170,  1717,  4149,
     867,   552,  1482,  1934,   691,  3924,  1219,  1137,  2110,  1796,
    1720, -1433,  2557,  1565,  1902,  1095,  3751,  1905,  1906,  1096,
    2925,  2427,  1718, -1699,    47,  1344,  1433,   945,   548,   918,
    1508,  2174,  1541,  2872,   707,  1730,  2268,  3675,  1407,  1986,
    1398,  1980,  3211,  2909,   162,   690,   166,  1513,  1514,  2446,
     819,  1542,  2787, -1269,  3083,  1100,  1532,  1101,  1095, -1266,
   -1789,  1518,  1096,  1760,  3792,  1543,  1761,   919,  1839,   924,
    3639,   928,  3598, -1466,  3643, -1899,  1965,   932,  1613,   909,
     951,   612,  3670,   612, -1933,   612,  1419,   607,   608, -1952,
    4075,   612,   933,   934, -1266,  1284, -1266,  1434, -1812, -1835,
     967,  1279,   768, -1977,  3973,  1289,   913,  1067,  1485,  1899,
    1076,   867,  1078,   703,   607,   608, -1813,   704,  2863,  1508,
    4065,  1217,  1218,   957,   877,  3497, -1902,   935, -1461,  1827,
    3236, -2119,   947,  3241,  3242,  3243,  3244,  3245,  3246,  3247,
    3248,  3249,  3250,  1524,  1071,  2962, -1269,  2963, -1951,  2441,
    4115, -1473,   702,  1567,   162,   161,   166,   156,   157,   159,
    1387,  1093, -1466,  1604,  3342,  2312,   607,   608,  1895,   607,
    1214,   834,  3858,  1595,  2167,  2333,  2170,   607,  1214,  3868,
    3402, -1269,  1119, -1269,   947,  1298,  2178,  1803,  3375,  2181,
    2449,  1157,  3290,  3291,  1715,   545,  3334,  2193,  2194,  3043,
    3044,  1717,  2616,  1105,  2131,  1356,  1357,  1407, -1951,  3181,
    2211,  2213,  1803,  1140,  1168,  1791,  -118,  -118,  1287,   607,
     608,  2227,  1384, -1951,  1541,  1718,  2784,  2785,  2786,  2787,
    2406,  1792,   501,  2949,  3038,  1162,  2118,  3041,  3042,   612,
    2428,  3045,  1073,  1542,  3908,   548,  1081,  2368,  1253,  1409,
    1411,  3052,  3106,  2056,  1173,  1258,  3869,  1545,  4081,  3006,
    3131,  1259,  2880,  1893,  4129,  2197,  2198,  4106,   696,  1592,
    1593,  1594,  1595,   546,  1303,   547,  2129,  3356,  3422,  2053,
     169,  1907,  2420,  1571,  3182,  1793,  1254,  1102,  1990,  3073,
    3836,  1085,  3838,  2125,  2126,  3109,  1739,  2482,  1990,  1485,
      64,  1717,  1794,    74,  1717,  2020,  1742,  3073,   133,  3572,
     632,  3953,   154,   160,  1407,  3403,  1169,   548, -1433,   170,
    2132,  1354,  3899,  1894,  2523,  1718,   697,  2076,  1718, -1433,
    2524,  1518, -1433,  1149,  3517, -1433,  2085,  1163,  1576,  3774,
    1804,  1379,  1382,  1383,  3999,  3210,  2624,  1743,  2092,  3160,
    2039,  1571,  2421,  1991,   867,  4016,  3782,  1260,  2617,  2082,
    1850,  4025,   625,  1991,  3783,  3977,  3978,   867,   878,  3085,
     859,   975,   653,  3423,  2775,  1892,  1574,  2021,   162,  3775,
     166,  2422,  1740,  3211,  3177,  1390,   633,  4130,  4011,  2117,
     698,  3826,  2122,  1367,  2124,  3518,  1744,  2127,  3364,  3829,
    1484,   612,  3132,  1908,  3833,  1909,  1576,  3835,  1992,  1389,
    1916,  1993,  3183,  3897,  3404,  1805,   698,  3405,  1992,  4082,
     867,  1993,  3417,  3749,  3086,  2040,  2525,  1795,  3113,  3974,
    1071,  1368,  2071,  1255,  2618,  1391,   698,  1506,  1449,  3980,
    1451,  1961,  1453,  3179,  1455,  4107,  1457,  1458,  1459,  2950,
    2775,  2102,  1071,  1461,  1570,  2119,  1522,  1571,  4076,   691,
    1485,  3760,  1288,  3516,  3114,   654,   923,   925,   927,  1571,
    3184,   929,   930,   931,  2407,  1164,  3592,  3115,  3962,  4000,
     755,   936,  1574,  2200,   519,  1192,  1549,  3954,  1575,  4002,
    2133,  1086,   652,  1563,  1574,  1261,  2207,  2207,  2423,  1994,
    1560,  2207,   699,  1568,  3438,  2007,   631,  1879,  2134,  1994,
     583,  4108,  1576,  1605,  3784,  1994,   768,  3418,  1256,  1796,
    4080,  2600,   860,  1392,  1576,  1421,  1262,  3971,  1879,    14,
     867,  1579,  1580,  1621,  4109,  1165,  3981,   867,   867,  1120,
     521,  2207,  2207,  1733,  1734,  4096,  1738,   704,   704,  1726,
     704,  1087,   634,   635,  2777,  1263,  3116,  2070,  3365,  3382,
      19,  3686,  1971,  1422,  2526,  2348,   962,   612,  1875, -1786,
    1393,   612,   612,  2863,  1583,  2420,   861,  2863,  1369,  1634,
     548,  1799,   702,   702,  1945,   702,  3366,  1371,  2069,  2875,
    3669,  1743,  2876,  3959,  1995,  2527,  2532,  2075,  4003,  2041,
    1972,  2942,  3382,  3419,  1995,  2083,  2084,  1372,  1800,  3840,
    2778,  2042,  2876,  1996,  3881,  2389,  1578,  3342,  1928,  1929,
    1930,  1931,  3687,  2096,  2528,  3756,  1763,  2548,  3652,  3661,
    2777,  3383,  1121,  1259,  2960,  3620,  3621,  1579,  1580,  2943,
    1744,  2446,  4001,   784,  1140,  2421,  2808,  4052,  1394, -2120,
    3439,    32,  2815,  1717,  1835,   673,  1966,  1967,  3658,  1717,
     612,  4004,  1976,  1370,  2694,  -550,   612,  2390,  3662,  4049,
    4050,   684,  3586,   528,  3383,   529,  1268,  1718,  3505,  2019,
    1583,   854,  1126,  1718,  3872,  3384,  1222,  1872,  2699,  3600,
    2511,  3601,  3073,  1584,  1919,  1945,  2068,   534,  2514,   934,
    2516,  2642,  2643,  2644,  2645,  2074,  3076,   768,  2001,  3138,
    1423,  1864,  3882,   612,  4098,  3462,   612,   612,  1823,  2886,
    2385,  3465,  3466,  3467,  3468,  3469,  3470,  2243,  3384,  1260,
    2431,   785,  2034,  2035,  2036,  2037,  1801,  1836,    37,  2461,
    1850,   519,  1530,  1531,  1932,  1095,  1945,  1973,  1128,  1096,
    1407,  1373,   856,  3207,  1590,  1591,  1592,  1593,  1594,  1595,
     975,  1865,  2411,  2775,  4055,  3362,  3484,    41,  2529,   786,
    1959,   750,  -869,    37,  2690,   612,  2448,  2782,  2783,  2784,
    2785,  2786,  2787,  2883,  1129,  1622,  2944,  1448,  4134,  2462,
    1450,  2423,  1452,  3539,  1454,  1424,  1456,   521,  2098,  2530,
    1460,  2964,    41,  4158,    45,  1223,  1518,  1154,  1776,  -140,
    2508,  2373,  3485,  2432,  2029,  3602,    46,   787,   548,  2961,
    3225,  4056,   595,  3778,  1623,   504,  2023,  3575,  2531,  3576,
    2024,   768,  1974,  1881,  -140,  3779,  2025,   649,  1155,    45,
    2026,  2027,    32,  2463,  2751,  3234,  2775,  1226,  2028,  1541,
      47,    46,   693,  2782,  2783,  2784,  2785,  2786,  2787,  2508,
    1590,  1591,  1592,  1593,  1594,  1595,  3742,  1156,  1542,  3254,
    3880,  2945,  1590,  1591,  1592,  1593,  1594,  1595,  1227,  3200,
    1882,  1883,   758,   759,   760,  2349,   761,   762,   763,   764,
     765,   766,  2802,  2464,  3743,  1717,  1717,  1717,   162,  3179,
     166,  2182,  2863,   548,  2087,  1157,   169,  2863,  1407,  2719,
    2863,  3871,  1785,  2091,  1879,  2320,  3498,  3941,   169,  1718,
    1718,  1718,  1786,  2827,  2101,  1151,  2498,  3237,  1913,  3238,
     528,   708,   529,  1344,  3885,  2148,  2931,  1787,  1157,  3161,
    3375,  2250,  1126,  2777,  1950,   170,  1127,   162,  2145,   166,
    2142,  2143,  2144,  3807,   534,  1769,  1152,   170,  1562,  1541,
     913,  1071,  1071,  1570,  1881,  2104,  1571,  2105,  2600,  2106,
    -360,  2107,  3802,  2108,  2191,  1951,   694,  2109,  1542,  3823,
    3824,  3845,  3846,  2500,  3780,  1153,  1770,   742,  2136,  3106,
    1907,  1574,  1543,   754,  3313,  3107,  2183,  1575,   601,  2778,
    3056,  2179,  2180,  4018,  4010,  3108,   777,  1717,  1128,  2192,
     823,  1882,  1883,  2195,  2196,  1771,  2450,  2941,   602,  3909,
    2004,  1576,  3314,  3691,  3692,  2147, -2120,  1717,  2217,  1267,
    2218,  1718,  3109,    32,  3110, -1312,  1887,  3645,  2253, -1312,
    2717,   595,  3495,  3239,  1129,  1879,  3910,  3316,  3375,  2165,
    2240,  1718,  2241,  3240,  2535,  2501,  1952,  3854,  1268,  3856,
    4041,  2184,  2686,  2064,  2065,  1788,  4029,  1953,  1249,  2207,
    1873,  2313,  2207,  2207,  2207,  2207,  2207,  2207,  2207,  2207,
    2207,  2207,  2389,  2536,  2255,  4042,  2256,  2647,  2296,   783,
    2365,  1954,  2648,  1571,  2707,  2369,  2863,  2310,  2372,  1250,
    1630, -1312,  2207,  1251,   826,  2502,  3111,  2935,  2257,  2401,
     768,  2829,  1908,  2830,  1909,   750,  2185,  1541,  1574,  2186,
    2394,  1577,    37,  2991,  1079,  1578,   828,  1438,  1252,  1157,
    1439,  2207,  2207,  1428,  2928,  2831,  1542, -1312,  3726,  3727,
     843,  2018,  3318,  2591,  3394,  1611,  1579,  1580,  1576,  2433,
    1545,    41,  2954,  1429,  2992,  2503,  2894,  2341,  2342,  2048,
    3112,  1581,  3947, -2120, -2120,  3113,  2782,  2783,  2784,  2785,
    2786,  2787,  2447,  1861,  3969,  2403,  2404,  2405,  3380,  2878,
     198,  1866,  2413,  2993,  2415,   505,  2417,  2418,    45,  1583,
     849,  3398,  3140,   581,   857,  2478,  1518,  3028,  1776,  3440,
    2258,  3114,  1584,  2748,   835,  2259,   836,  2187,  2100,   650,
    2260,  2321,  2335,  2324,  3115,  2499,  2844,  3029,  2509,  3441,
   -1336, -1336,  2168,   162,  2351,  2379,   612,  2382,  3619,  3267,
    1724,   858,  2832,  1725,    47,  2517,  1717,  2833,  3401,  3406,
    1923,   888,  2521,  2504,    37,  1949,  1105,   907,  3312,  2782,
    2783,  2784,  2785,  2786,  2787,  2544,  3481,   838,  3483,   839,
    1718,  3486,  2749,  3487,  2551,  2693,   975,  2750,  1095,  2775,
   -1789,   643,  1096,    41,  2500,  2512,  1881,  1586,   672,  2701,
    2702,  1881,   975,  2704,   873,  2775,  3375,  3096,  1078,  2708,
    2628,  1727,  2648,  3116,  1728,   897,  2734,   975,  2917,  2918,
    2775,  2920,  2188,  3255,  3256,  3217,  2801,   610,  2803,  2804,
      45,   975,   610,   595,  2775,  3313,  2168,  3281,  3803,  3804,
    3805,  3806,    46,  1882,  1883,  2261,  2605,  2561,  1882,  1883,
    1505,  3282,    47,  3221,  2262,  2570,  2571,  2572,  2573,  2574,
    2575,  2429,  2505,  3314,  2740,   903,  2501,     3,     4,  1518,
    2506,  1149,  2834,  2507,  3120,   939,    47,  1879,  3315,   954,
    2469,  2835,  1879,   949, -1278,  1587,  1588,  1589,  3316,  1590,
    1591,  1592,  1593,  1594,  1595,  2606, -1278,  1881,  2099,  3288,
   -1278,  2100,  4118,    27,  2111,  2540,   952,  2112,  2113,   612,
    3317,  2112,  2139,  3906,   943,  2140,  2502,   612,  2934,   612,
    3886,  1518,  2207,  1776,   583,  2482,  3073,  3413,  1717,  3830,
    2326,    27,  1717,  1407,  1717,  3087,  3089,  3090,  2657,   696,
    2569,   959, -1278,    14,  1882,  1883,   960,  3009,  2569,  4095,
    2361, -1313,  1718,  2140,  2439, -1313,  1718,  2440,  1718,  2668,
    2669,  2629, -1278,  2695,  2776,  2697,  2503,  3220,   961,  2777,
    2494,  2607,  2608,  2495,    19,  2741,   962,  2586,  1879,  2743,
    2587,    37,  2624,  3318,  2609,  2777,  2848,  2601,  2849,  1850,
    2602,  3618,  2711,  3377,  3378,  2112,  3261,   697, -1278,   965,
    2777,  2599,  2600,   968,  2641,  3549, -1278,   969,   513,    37,
      41,   963,  3937,  2747,  2777,   964,  2100, -1313,  1570,  2757,
    2760,  1571,  2100,  2100,  2636,  2778,  3136,  2764,  2672,  2610,
    2100,   971,   162,  2656,   867,  1082,  2639,  2765,    41,  2791,
    2100,  2778,  2100,  2889,  2890,  2807,  1574,    45,  2100,  1084,
    3222,  2746,  1575, -1313,  2504,  3831,  2778,  2812,  1088,    46,
    2813,   698,  2982,  1089,  2986,  2983,   867,  2987,  1090,  3130,
    2778,  3133,  1491,  1492,  3127,    45,  1576,  3128,  2936,   975,
    3158,  1094,  2775,  3159,   768,  3168,   519,    46,  3169,  1570,
    1106,  2630,  1571,  4119,  2207,  2207,  3490,  3491,  3226,  3625,
     975,  2100,  1113,  2775,  2933,  -863,  3262,  3272,  1114,  3263,
    3273,  3284,  1280,  2611,  2100,  2612,  1116,  1574, -1278,  2864,
    3626,    47, -1062,  1575, -1062,  2895,  2896,  3354,   612,  2631,
    3355,  2877,  3850,  3358,  1117,  3121,  3359,  3123,  2826,  1124,
    1138,  3381,   521,  3478,  2112,  1139,  2887,  1576,  3325,  1143,
    1149,  3474,    37,  2505,  3475,  3624,  1167,  3206,  2140,  3330,
    3332,  2506,  3677,  3683,  2507,  3678,  2112,  2864,  1172,  2999,
    2972,  3001,  2974,   699,  1221,  3684, -2120,  3216,  2112,  1116,
    1578,    41,  2638,  2850,  3770,  2851,  1266,  3771,  2779,  2780,
    2781,   691,  2782,  2783,  2784,  2785,  2786,  2787,  3174,  1257,
    2913,  1579,  1580,  1190,  2779,  2780,  2781,  1219,  2782,  2783,
    2784,  2785,  2786,  2787,  3812,  3027, -2120,  3813,    45,  2779,
    2780,  2781,   584,  2782,  2783,  2784,  2785,  2786,  2787,  4162,
      46,  4163,  1560,  2779,  2780,  2781,  3039,  2782,  2783,  2784,
    2785,  2786,  2787,  1275,  1583,  3814,  2253,  1577,  2100,  1720,
    3026,  1578,  1116,  3312, -1266,  3033,  1123,  1584,  1125,  2853,
    2854,  2855,  2777,  3822,   585,  2847,  2140,  3889,  3903,  1276,
    3890,  3904,  1579,  1580,  1283,   528,  3938,   529,  2857,  3939,
    2168,  3460,  3644,  2777,  3647,   867,   531,  1581,   691,  1290,
    3949,  1281,  2938,  2140,  2939,  2940,   533,  3892,  2852,   534,
    3956,  3961,  3963,  1407,  3147,  3147,  1285,   162,  2145,   166,
    2142,  2143,  2144,  4019,  1295,  1583,  1610,  2879,  2778,   612,
    3313,  4023,  4030,  1297,  4024,  2140,  2857,  2990,  1584,   690,
    4031,  1304, -2120,  2813,  3002,  4032,  1307,  4035,  2100,  2778,
    1407,  1157,  4037,  2450,  1071,  3147,  4054,  1348,  3314,  2140,
    3623,  4060,  4061,  4084,  2140,  2140,  1407,  1570,  4160,  1350,
    1571,  4161,  3480,  3315,  1352,  3570,  4171,  3189,  2233,  4161,
     867,  2236,  1344,  3316,  1361,  -157,  1363,  1365,  1377,  1385,
     185,  1395,  1400,  1401,  1402,  1574,  1403,  1404,  3788,  1406,
    1407,  1575,  3036,  1412,  2154,  3317,  1415,  1416,  1417,  1418,
    2887,  1420,  3188,  1586,  1425,  1426,  3191,  1427,  3193,  1432,
    3195,  3196,  2207,  3056,  1437,  1576,  1462,  1487,  2887,  3201,
    1717,  2207,  1493,  1489,  1590,  1591,  1592,  1593,  1594,  1595,
    1495,  1496,  3230,  1502,  1503, -1437, -1444,  1512,  2207,  2207,
    1521,  2155,  1515, -1434,  1718,  1516,  1517,  2985,    47,  1523,
    3218,  3235, -1435,  1526,  3607,  1527,  1528,  1529,  1534,  1536,
    1537, -1438,  1538,  1539, -1436,  1540,  1547,  1548,  3318,  3991,
    1717,  3993,  1610,  1550,  1551,  3007,  3257,  2837,  1552,  1553,
    1554,  2779,  2780,  2781,  1555,  2782,  2783,  2784,  2785,  2786,
    2787,  2156, -2120, -2120,  1718,  1590,  1591,  1592,  1593,  1594,
    1595,  1556,  2779,  2780,  2781,  1557,  2782,  2783,  2784,  2785,
    2786,  2787,  1485,  1599,  3583, -2120,  1614,  1633,  1625,  1578,
    2157,  1731,  1127,  1129,  1758,  2158,  1766,  1772,  1773,  1774,
    2569,  1776,  1777,  2569,  2569,  1778,  1779,  2569,  1806,   750,
    1579,  1580,  1780, -2033,  1945,  1781,  1802,  2569,  1828,  1830,
    1831,  3738,  1303,  1228,  1832, -2120,  3075,  1833,  1863,  3209,
    1854,  1855,  1861,  1873,  3731,  1874,  1876,  1879,  1877,  1878,
    1889,  2159,  3529,  3530,  3075,  1885,  1886,  3219,  1340,  1896,
    1888,  1897,  1890,  1583,  1900,  1901,  1903,   867,  1910,   867,
     612,  1911,  1917,  1204,  1924,  1925,  1584,  3082,  3084,  1229,
    1935,  1936,  3091,  1940,  1937,  1962,  1941,  1946,   612,  1975,
    1948,  1977,  1963,  1978,  1987,  1988,  1985,  1508,  2005,   515,
    3145,  2207,  2008,  3549,  1751,  1518, -2033,  2011,  1524,  3126,
    3223,  1243,  2012,  2038,  2017,  2016,  3134,  2033,  2051,  2052,
    2057,  2062,  2063,  2078,  3580,  3581,  3582,  2067,   185,  3173,
     867,   162,  3165,  2079,  3141,  2080,  2094,  2095,  2081,  1145,
    2128,  3149,  2123,  2060,  2137,  3155,  3810,  2150,  2174,   162,
    3187, -2120, -2033,  2215,  2216,  2173,  1230,  2864,  2228,  2160,
    3167,  2234,  1571,  2238, -2033,  2161,  2239,  2246, -2033,  2252,
    2311,  2271,  2269, -2033,  2298,  2315,  2318,  2319, -2033,  2314,
     697, -2033,  2327, -2033,  1340,  2328,  2336,  3197,  2337,  2362,
    3198,  2340,  2360,  2162,  2346,  2363,  2364,  2375,  2380,  2383,
    2387,  1231,  2385,  1232,  2388,  2393,  2399,  2396,  2402,  2416,
   -2033,  3728,  2163,  1915,  2419,  2437,  2430,  2435,  2493,  2489,
    2484,  2496,  2497,  2537,  1071,  2554,  2559,  2864,  2550,   612,
   -2033,  2555,  2558,  2560,  2564,  2565,  2164,  2562,  2563,  3788,
    2566,  1234,  2576,  1590,  1591,  1592,  1593,  1594,  1595,  2582,
    2578,  2585,  2589,  2592,  2593,  2594,  2595,  2596,  2597,  2603,
    2622,  2627,  2634,  2640,  2598,   691, -2033,  2646,  2654,  3395,
    2649,  2653,  2671,  3279, -2033,   691,  2673,  2685,  1236,  2691,
    2687,  2688,  3891,  2887,  2689,  2700,  2692,  2703,  2705,  2706,
    2710,  3531,  2718,  2713,  3664,  3298,  3299,  3300,  3301,  2714,
    2715,  2725,  2151,  2733,  2737,   945,  1560,  3390,  3391,  3392,
    3393,  2716,  1238,  2739,  1620,  2744,  3305,  2742,  2745, -2033,
    2758,  2759,  2761,  2762,  3841,  2828,  3340,  2763,  2797,  1717,
    2809,  2843,  2766,  3442,  2823,  2866,  3445,  2874,  2872,  2767,
    3302,  3303,  3304,  -909,  2769,  2772,  1570,  2790,  4116,  1571,
    2796,  2100,  3948,  1718,  2798,  2799,  2806,  2821,  3716,  3717,
    2836,  3719,  2901,   625,  2899,  2822,  3057,  2846,  1174,  2871,
    2905,  2911,  2916,  2919,  1574,  1340,  2930,  2922,  2926,  2921,
    1575,  2927,  3574,  2937,  2951,  2958, -2033,  2971,  2973,  3577,
    3578,  2959,  3752,  3004,  3012,  3010,  3005,  3013,  3008,  3014,
    1175,  3017,  3011,  3015,  1576,  3016,  3018,  3058,  3019, -2033,
    3020, -2033, -2033,  3022,  3021,  3024,  3984,  3023,  3030,  3025,
    3989,  3990,  1340,  3032,  1933,  3040,  3034,  3046,  3047,  3048,
    3049,  3059,  3077,  3050,  3051,  3080,  1994,  3853,  3092,  3075,
    3081,  3124,  3097,  1485, -2033,  3093,  3060, -2033, -2033, -2033,
    3061,  1340,  3135,  3137,  3139,  1176,  3433,  3731,  3098,  3434,
    3146,  3435,  1174,  3156,  3985,  3147,  3292,  3162,  3062,  3151,
    3163,  3186,  3514,   612,  3166,  3432,  3192,  3153,  3203,  3455,
    3456,  3988,  3194,  3063,  3951,  3214,  1177,  3157,  3208,   612,
    3224,  2569,  3213,  3204,  1175,  3205,  3215,  2569,  2569,  2569,
    2569,  2569,  2569,  1505, -2120,  3229,  2793,   867,  1578,  2775,
    2792,  3482,  1564,  2206,  3311,  3258,  3259,  1340,  3260,  3274,
    3266,  3286,  3287,  3350,  3327,  3295,  3324,  2229,  3368,  1579,
    1580,  4148,  3333,  3386,  3343,  3347,  1340,  3344,  1717,  3346,
    3388,   612,  3690,  3396, -2120,  3389,  3414,  3399,  3397,  1176,
    3500,  3502,  3504,  3506,   933,   934,  1340,  3407,  3064,  3415,
    3426,  3416,  1718,  3699,  3427,  3489,  3065,  3428,  3437,  3429,
    3453,  3430,  1583,  3431,  3402,  3708,  1178,  3457,  3461,  4148,
    1177,  1340,  3463,  3496,  3499,  1584,  1717,  4148,  3464,  3492,
    3493,  3521,  3532,  3513,  1717,  3927,  3178,  3534,  2112,  3066,
    3700,  3701,  3522,  3535,  3494,  3537,  3525,  1179,  3553,  3557,
    1718,    32,  2864,  3722,  3558,  1180,  2864,  3562,  1718,  3968,
    3560,  1181,  3538,  3568,  3567,  3533,  3861,  3584,  1182,  3571,
    3573,  3579,  3587,  1340,  3588,  3589,  1183,  3590,  4040,  3591,
    3596,  3599,   768,  3603,  1184,  3604,  3608,  3609,  3612,  3610,
    3723,  3724,  1185,  3611,  3875,  3616,  3636,  3640,  3641,  3648,
   -2120,  3653,  3665,  3638,  3672,  3654,  1808,  3668,  3651,  3674,
    3656,   621,   622,  3657,  1602,  3594,   628,  3679,  3680,  3694,
     638,   644,   621,  3695,   651,  3696,  3702,   644,   644,  3720,
     677,  4137,   680,   612,  3709,  3712,  3729,  3725,  3736,  1809,
    3741,  3744,  1186,  3745,  3753,    32,  3758,  1838,  3757,  1180,
    3762,  3764,  1810,  3769,  3772,  1181,  3776,  3785,  3786,  3794,
    3808,  3800,  1182,  3809,  3811,  1811,  3816,  3818,  3819,  3820,
    1268,  3821,  3703,  3827,  3834,  3843,  3837,  3847,  1184,  3849,
    3855,  3851,  3867,  3870,  3713,  3884,  1185,  3893,  3955,  3883,
    3877,  3878,  1590,  1591,  1592,  1593,  1594,  1595,  3955,  1485,
    3520,  3900,  3912,  1812,  3902,  3796,  3913,  3797,  3798,  3915,
    3917,  2857,  3929,  3930,  3931,  2857,  3932,  3933,  3801,  3952,
    3958,  3967,   698,  4009,  3975,  3632,  3633,  3634,  3635,  3982,
    4012,  4005,  1813,  4015,  4027,  3663,  1186,  1814,  4021,  4022,
    4028,  4038,  4033,  1340,  3718,  3995,  4034,  3673,  4039,  4044,
    4046,  4057,  3986,  1433,   162,  3666,  4062,  4063,  3721,  4066,
    4068,   733,   738,   738,   741,  4072,   738,   746,  4077,   733,
     752,   677,  3335,   770,  3671,   752,  4097,   677,  4094,   677,
    4099,  4102,  4064,   738,   752,   677,  4105,  4140,   612,  4051,
    4065,  4113,  4156,  4159,  4128,  4165,  4169,  1118,  1947,  1632,
    2637,  2969,  2881,  2488,  3411,  1193,  2549,  3053,  3887,  3730,
    3997,  3768, -2035,  3914,  3555,  3697,  3916,  3750,  3926,  4036,
    2924,  2712,  4100,  3859,  4136,  4069,  4017,  4067,  4111,   612,
    2929,  3556,  1815,  3524,  2620,  2621,  3410,  2980,  2030,  3527,
    3526,  2604,  3706,  3707,  3142,  2050,  3767,  3710,  3711,  4139,
    4170,  4166,  3078,  3094,  2569,  2569,  4112,  3876,  4103,  2015,
     185,  4059,  4048,  3879,   627,  3970,  3585,  1480,   867,  3563,
    2443,  4026,  3734,  3564,  3735,   869,  3031,  3739,  3740,  4121,
    4167,  2864,  1091,  3907,  2884,  2322,  2864,  2323,  3667,  2864,
    2103,  1816,  3360,  3543,  2885, -2035,  2877,  1817,  1754,  1112,
    1818,  2345,  1755,  1729,  2897,  1485,  2893,  2339,  3747,  2344,
    1759,  2898,  2910,  3307,   768,  1099,  3960,  3646,  3361,  2864,
    1762,  2590,   612,  3278,  3950,  1819,  3268,  4085,  4093,  3766,
    4086,  1820,   162,  3759,  3946,  3027,  2888,  2887,  2841,  2839,
    2754, -2035,   768,  3357,  1821,  2297,     0,  3874,     0,     0,
       0,     0,     0, -2035,     0,     0,     0, -2035,  3787,     0,
       0,     0, -2035,     0,     0,     0,     0, -2035,  1822,  1485,
   -2035,     0, -2035,  1485,  1485,     0,     0,     0,     0,  3594,
    3594,  3594,  3594,   750,     0,  3862,  3864,  3864,  3972,     0,
       0,     0,     0,     0,     0,     0,  2678,     0,  3793, -2035,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1570,
       0,     0,  1571,     0,     0,  1174,  1340,  3996,     0, -2035,
       0,  1340,  1340,     0,     0,     0,     0,  2864,     0,     0,
    1194,     0,  1340,     0,     0,     0,  1195,  1574,     0,     0,
    2857,     0,     0,  1575,     0,  2857,     0,  1175,  2857,     0,
       0,     0,     0,     0,     0, -2035,     0,     0,     0,     0,
       0,  1228,     0, -2035,     0,     0,     0,  1576,     0,     0,
       0,     0,     0,     0,     0,  2864,  1196,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3934,   793,     0,  3075,     0,     0,   677,     0,   733,     0,
       0,   738,  1176,   741,     0,   738,     0,  1229, -2035,   752,
       0,   770,     0,   752,   846,     0,  2569,     0,  2206,  2206,
    3888,   738,  3852,  2206,   752,  1197,     0,   612,     0,  3293,
       0,     0,  1198,  1177,     0,  1199,     0,     0,   868,     0,
       0,     0,   733,     0,     0,     0,     0,   741,     0,     0,
    1194,   733,   625,     0,   770,     0,  1195,     0,     0,  1340,
       0,     0,  2679,  2206,  2206,     0,     0, -2120,  3976,   738,
       0,  1578,  3896,     0,   917, -2035,     0,     0,     0,     0,
       0,     0,     0,     0,  1230,     0,  3992,  1200,  3994,     0,
       0,     0,  1579,  1580,     0,     0,  1196,     0, -2035,     0,
   -2035, -2035,     0,  1071,     0,     0,     0, -2120,     0,     0,
     768,     0,     0,     0,     0,   677,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   677,   958,  4133,     0,  1231,
       0,  1232,  1340, -2035,  2857,  1583, -2035, -2035, -2035,     0,
       0,  1233,     0,  1202,  1066,  1197,   677,   644,  1584,   868,
       0,   644,  1198,  1203,     0,  1199,  4074,     0,    32,     0,
       0,  1204,  1180,   677,     0,  2864,     0,   677,  1181,  1234,
    1205,     0,     0,  1066,     0,  1182,     0,     0,  3864,     0,
       0,   867,     0,  1268,   677,     0,     0,     0,     0,     0,
       0,  1184,     0,     0,  3979,  4101,   677,     0,     0,  1185,
       0,  1235,     0,     0,     0,  1207,  1236,  1200,     0,     0,
       0,     0,  1340,     0,     0,     0,     0,  4071,     0,     0,
       0,     0,     0, -2120,     0,     0,     0,     0,     0,     0,
    1237,     0,     0,     0,     0,     0,     0,   677,     0,     0,
    1238,     0,     0,     0,     0,   738,   738,     0,     0,  1186,
       0,     0, -2047,  2681,  3178,     0,     0,     0,     0,     0,
       0,  1201,     0,  1202,     0,     0,     0,  4104,     0,     0,
       0,     0,     0,  1203,     0,     0,     0,     0,     0,     0,
       0,  1204,     0,   733,     0,     0,  1209,     0,     0,     0,
    1205,     0,     0,   733,     0,     0,   770,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  4168,  4138,     0,   738,
       0,     0,     0,     0,     0,  1590,  1591,  1592,  1593,  1594,
    1595,  1570,     0,   677,  1571,  1207,     0,     0,     0,   738,
     738,     0,     0,     0,     0, -2047,     0,     0,     0,     0,
       0,  1572,     0,   677,   677,   677,   738,     0,   733,  1574,
    1208,     0,     0,     0,     0,  1575,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   738,   738,     0,     0,     0,  4155,  1576,
       0, -2047,     0,   162,  4126,   166,  4123,  4124,  4125,     0,
       0,     0,   868, -2047,     0,     0,  1066, -2047,     0,     0,
       0,     0, -2047,     0,  4147,   868,  1209, -2047,     0,     0,
   -2047,     0, -2047,     0,     0,     0,     0,     0,     0,  4154,
    4126,   166,  4123,  4124,  4125,     0,     0,  1465,  1465,     0,
       0,     0,   677,     0,   621,     0,     0,     0,  4146, -2047,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1494,  4147,     0,   677,     0,     0,  1500,   868, -2047,
    4147,     0,     0,   162,  4126,   166,  4123,  4124,  4125,     0,
    1066,     0,     0,     0,  1340,     0,     0,     0,     0,  1577,
       0,     0,     0,  1578,     0,     0,  4146,     0,     0,     0,
       0,     0,     0,     0,  4146, -2047,     0,     0,  1066,     0,
       0,     0,     0, -2047,  1579,  1580,     0,     0,     0,     0,
       0,     0,  1340,  1340,     0,  1340,     0,     0,     0,  1581,
       0,     0,     0,     0,     0,     0,  1066,  1066,     0,  1066,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  2678,     0,  1582,     0,  1066,  1583, -2047,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1584,  1174,     0,  1585,     0,  1340,     0,  1340,   868,     0,
       0,     0,     0,     0,     0,   868,   868,     0,     0,     0,
       0,   677,     0,     0,  1066,     0,     0,     0,     0,     0,
       0,  2206,   625,  1175,  2206,  2206,  2206,  2206,  2206,  2206,
    2206,  2206,  2206,  2206,     0,     0,     0,     0,     0,     0,
       0,  1340,     0,  1066,     0, -2047,     0,  1066,  1066,     0,
       0,     0,     0,     0,  3265,     0,     0,   677,   677,  1765,
       0,     0,  1340,     0,     0,  1586,     0,     0, -2047,     0,
   -2047, -2047,     0,     0,     0,   644,     0,     0,  1176,     0,
       0,     0,     0,  2206,  2206,     0,     0,  1340,     0,     0,
       0,     0,     0,     0,     0,  2678,     0,     0,     0,     0,
       0,     0,   644, -2047,     0,  1340, -2047, -2047, -2047,  1177,
       0,     0,     0,  1860,  1174,     0,     0,     0,     0,   677,
       0,     0,   738,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1570,     0,  2679,  1571,
     770,     0,     0,     0,     0,     0,  1175,     0,     0,     0,
       0,     0,     0,  1587,  1588,  1589,  1572,  1590,  1591,  1592,
    1593,  1594,  1595,     0,  1574,  2316,     0,     0,     0,  1340,
    1575,  2317,   738,   738,   738,   738,   677,     0,     0,     0,
       0,     0,  1340,     0,     0,   752,     0,   644,     0,     0,
       0,     0,     0,  1340,  1576,     0,     0,     0,     0,     0,
    1958,  1176,   677,     0,     0,     0,     0,     0,     0,     0,
     738,   738,     0,     0,     0,     0,   738,     0,     0,     0,
       0,  1570,     0,     0,  1571,     0,     0,     0,     0,     0,
       0,     0,  1177,     0,    32,     0,     0,     0,  2680,     0,
       0,  1572,     0,     0,  1181,     0,     0,     0,     0,  1574,
       0,  1182,     0,     0,     0,  1575,     0,     0,  1340,  1268,
       0,  2679,   738,     0,     0,     0,     0,  1184,     0,     0,
       0,     0,     0,     0,     0,  1185,     0,  1340,     0,  1576,
     752,     0,     0,     0,     0,     0,   738,   738,   738,   738,
       0,     0,     0,     0,  1577,     0,   752,     0,  1578,     0,
       0,     0,  1340,     0,     0,  1958,     0,     0,     0,  1332,
       0,     0,     0,     0,   733,     0,     0,     0,     0,  1579,
    1580,   741,     0,   733,     0,  1186,     0,     0,     0,  2681,
       0,   770,     0,     0,  1581,     0,   677,     0,  1340,     0,
       0,     0,     0,     0,     0,   677,     0,   752,     0,     0,
       0,   738,   738,     0,  2206,     0,   677,    32,   917,  1582,
       0,  1180,  1583,     0,     0,     0,     0,  1181,     0,     0,
       0,     0,     0,     0,  1182,  1584,     0,     0,  1585,  1577,
       0,  1465,  1268,  1578,     0,     0,     0,     0,     0,   733,
    1184,     0,     0,   677,   677,     0,     0,     0,  1185,     0,
       0,   677,     0,     0,  1579,  1580,     0,     0,     0,     0,
       0,     0,     0,     0,   621,   621,     0,     0,  2153,  1581,
       0,     0,  1066,     0,  1066,     0,     0,     0,     0,     0,
       0,  1066,     0,     0,  1066,  1332,     0,  1066,     0,     0,
       0,     0,     0,     0,  1582,  1066,  1066,  1583,  1186,     0,
    1586,     0,  2681,  1066,     0,   770,  1066,  1066,  1066,  1066,
    1584,     0,     0,  1585,     0,     0,  1066,  1066,     0,  1066,
       0,  1066,  1066,     0,     0,  1066,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1340,  1066,     0,     0,     0,   738,  1066,     0,     0,     0,
    1066,     0,     0,     0,  1066,     0,  1066,  1066,  1066,  1066,
    1066,  1066,  1066,  1066,  1066,     0,  1066,     0,     0,     0,
     677,  1066,     0,  1066,     0,     0,  2206,  2206,     0,   677,
       0,     0,     0,     0,     0,  1586,     0,     0,  1587,  1588,
    1589,     0,  1590,  1591,  1592,  1593,  1594,  1595,     0,     0,
       0,     0,     0,     0,     0,  2768,     0,     0,     0,  1194,
       0,     0,     0,     0,     0,  1195,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1196,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   553,  1587,  1588,  1589,  1332,  1590,  1591,  1592,
    1593,  1594,  1595,     0,   554,     0,     0,  1340,     0,     0,
    2816,     0,     0,   677,     0,   677,     0,  1066,     0,     0,
       0,     0,     0,     0,  1197,   555,     0,     0,     0,     0,
       0,  1198,     0,     0,  1199,     0,     0,     0,   556,     0,
       0,  1340,     0,  1332,     0,     0,     0,     0,     0,     0,
       0,   557,     0,  2352,     0,  2359,     0,     0,     0,     0,
       0,   752,     0,     0,     0,     0,   752,     0,   558,   752,
     741,     0,  1332,     0,     0,   621,     0,   621,     0,     0,
       0,     0,     0,     0,     0,     0,  1200,     0,     0,   559,
       0,   752,  1066,     0,     0,     0,     0,   733,     0,   738,
     738,   738,     0,   733,   770,     0,   738,   560,   738,     0,
     738,   738,     0,     0,     0,  1194,     0,     0,   561,     0,
     752,  1195,     0,   562,     0,     0,     0,     0,     0,   563,
       0,     0,     0,     0,     0,     0,     0,     0,  1332,     0,
    1201,     0,  1202,   752,   564,  1860,     0,     0,  1340,     0,
       0,  2451,  1203,     0,     0,     0,  2460,  1332,     0,  1340,
    1204,  1196,   677,     0,     0,     0,   752,     0,     0,  1205,
       0,     0,     0,     0,     0,     0,     0,  1332,  2491,  2491,
       0,     0,     0,     0,     0,   741,   752,     0,     0,   752,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   738,
    1206,     0,  1332,     0,  1207,     0,   752,     0,     0,     0,
    1197,     0,     0,   752,  2206,     0,     0,  1198,   565,     0,
    1199,     0,  2539,  3815,  2541,  2543,   752,     0,   566,  1208,
       0,     0,     0,     0,     0,   752,     0,     0,     0,     0,
    2206,  2206,     0,     0,     0,     0,   185,     0,     0,     0,
       0,   738,     0,     0,  1332,     0,     0,     0,  1340,   738,
     738,   738,   738,   738,   738,     0,     0,     0,     0,     0,
       0,   567,  1200,     0,  1066,   568,     0,   569,     0,  1340,
       0,     0,     0,   570,     0,  1209,   571,     0,     0,     0,
       0,  1340,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1860,     0,     0,     0,  2491,   677,     0,     0,     0,
     621,   572,     0,   573,     0,     0,     0,   574,     0,     0,
       0,     0,     0,     0,     0,   575,  1201,     0,  1202,  1340,
     576,     0,     0,     0,     0,  2539,     0,     0,  1203,     0,
       0,   577,   738,  2667,     0,     0,  1204,     0,     0,     0,
       0,     0,   868,     0,   578,  1205,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   738,  2491,   738,
    2491,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   868,     0,  1246,     0,     0,  1066,
    1207,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1194,  1465,     0,     0,     0,  1569,  1195,     0,     0,     0,
    1570,     0,     0,  1571,     0,  1247,     0,   752,     0,     0,
       0,     0,     0,  2206,  1332,     0,     0,     0,     0,     0,
    1572,     0,     0,  1573,     0,     0,     0,     0,  1574,   752,
       0,     0,     0,   733,  1575,     0,  1196,   733,     0,     0,
       0,     0,     0,     0,     0,   738,     0,     0,     0,     0,
       0,     0,  1066,  1066,     0,     0,     0,     0,  1576,     0,
       0,  1209,     0,     0,     0,  1340,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1570,     0,     0,  1571,
       0,     0,  1066,  1066,     0,  1197,     0,  1066,     0,     0,
       0,     0,  1198,     0,     0,  1199,  1572,     0,     0,  1066,
    1066,  1066,  1066,     0,  1574,     0,     0,     0,     0,     0,
    1575,     0,  1066,  1194,     0,  1066,     0,  1066,  2820,  1195,
       0,     0,     0,     0,     0,     0,     0,  1066,  1066,     0,
       0,  1066,     0,     0,  1576,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1066,     0,  1066,  1200,   770,     0,
    1066,     0,     0,     0,     0,     0,     0,     0,  1577,  1196,
       0,     0,  1578,     0,  1340,     0,  1066,     0,     0,     0,
     677,     0,     0,     0,     0,     0,     0,  2865,     0,  1066,
    1066,  1066,     0,  1579,  1580,     0,     0,     0,     0,     0,
       0,     0,     0,   868,     0,     0,  1066,     0,  1581,     0,
       0,  1201,     0,  1202,     0,     0,     0,  1066,  1197,     0,
       0,     0,  1066,  1203,     0,  1198,   677,     0,  1199,  1066,
       0,  1204,     0,  1582,     0,  2865,  1583,     0,  2904,     0,
    1205,     0,  2359,     0,  1577,     0,     0,     0,  1578,  1584,
       0,   752,  1585,     0,     0,     0,     0,     0,     0,     0,
    1340,     0,     0,     0,     0,     0,     0,     0,     0,  1579,
    1580,  1271,  1066,     0,  2491,  1207,     0,     0,     0,  1465,
    1200,  1340,     0,     0,  1581,     0,     0,     0,   868,     0,
       0,     0,     0,     0,     0,     0,   738,  1332,   738,   738,
    1272,     0,  1332,  1332,     0,     0,     0,     0,     0,  1582,
       0,  1340,  1583,  1332,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1586,  1584,     0,     0,  1585,     0,
       0,     0,     0,     0,  1201,     0,  1202,     0,     0,     0,
       0,     0,     0,     0,     0,  1340,  1203,     0,     0,  1340,
    1340,     0,     0,     0,  1204,     0,  1209,     0,     0,     0,
       0,     0,     0,  1205,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   752,     0,
       0,     0,     0,     0,     0,   752,     0,     0,     0,     0,
       0,     0,     0,     0,  1825,     0,     0,     0,  1207,     0,
    1586,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1587,  1588,  1589,     0,  1590,  1591,  1592,  1593,
    1594,  1595,     0,  1826,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1332,     0,     0,   752,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  2491,  2491,     0,     0,  1570,     0,     0,
    1571,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1572,     0,  1209,
       0,     0,     0,     0,     0,  1574,     0,     0,  1587,  1588,
    1589,  1575,  1590,  1591,  1592,  1593,  1594,  1595,     0,     0,
       0,     0,  2237,     0,     0,   868,     0,   868,     0,     0,
       0,   677,     0,  1332,     0,  1576,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1570,     0,     0,
    1571,     0,     0,     0,     0,  1465,   677,     0,     0,     0,
       0,     0,     0,   677,     0,     0,     0,   677,     0,     0,
       0,     0,     0,     0,     0,  1574,     0,     0,     0,     0,
       0,  1575,   677,     0,     0,     0,     0,     0,   868,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1576,     0,     0,     0,   677,
       0,     0,   677,  1332,  1341,   752,     0,     0,     0,  3202,
       0,     0,     0,     0,     0,     0,     0,   733,     0,     0,
     752,     0,     0,     0,     0,  1577,     0,     0,     0,  1578,
       0,     0,     0,     0,     0,     0,   677,     0,   752,     0,
       0,     0,     0,     0,   738,     0,     0,     0,     0,     0,
    1579,  1580,  1066,     0,     0,     0,     0,  3296,     0,     0,
       0,  1066,     0,     0,     0,  1581,     0,  1066,     0,  1066,
       0,     0,     0,     0,     0,  1066,     0,     0,  1066,  1066,
    1066,  1066,  1066,  1066,  1066,  1066,  1066,  1066,     0,     0,
    1582,  1066,  1066,  1583,     0, -2120,     0,     0,     0,  1578,
       0,     0,     0,     0,  1066,     0,  1584,     0,  1066,  1585,
       0,     0,  1066,     0,     0,     0,     0,     0,     0,     0,
    1579,  1580,  1066,     0,     0,  1066,     0,  1066,     0,     0,
    1341,     0,     0,     0,     0, -2120,  1066,  1066,  1066,     0,
       0,     0,  1066,     0,     0,  1066,     0,     0,     0,     0,
       0,     0,   677,   677,   677,  2865,  3310,     0,     0,     0,
    3310,  3323,     0,  1583,     0,  1066,     0,     0,     0,     0,
       0,  3337,     0,  1066,     0,  1066,  1584,     0,     0,     0,
       0,  1586,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1066,   497,
       0,     0,     0,     0,  1066,   542,   497,     0,  2359,     0,
    1066,   582,     0,   497,     0,     0,     0,     0,   497,     0,
     630,     0,     0,     0,     0,  3376,  1465,  1465,     0,  1958,
       0,     0,     0,     0,     0,     0,     0,     0,   689,     0,
       0,   738,   738,   738,   738,     0,     0,     0,     0,     0,
     752, -2120,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1332,     0,     0,     0,  1587,
    1588,  1589,  3409,  1590,  1591,  1592,  1593,  1594,  1595,     0,
       0,     0,     0,  3079,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1332,  1332,     0,  1332,     0,     0,     0,
       0,     0,     0,     0,   752,     0,     0,   752,     0,     0,
       0,  1341,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  3458,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1590,  1591,  1592,  1593,  1594,  1595,     0,
       0,     0,     0,     0,     0,   868,  1332,     0,  1332,     0,
       0,     0,     0,     0,     0,     0,  1334,     0,  1853,     0,
     745,     0,     0,     0,     0,     0,     0,     0,     0,   772,
       0,   774,     0,   776,     0,   778,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   677,     0,  1341,     0,     0,
       0,     0,  1332,     0,     0,     0,   738,     0,  1066,     0,
       0,     0,     0,     0,   677,     0,     0,     0,     0,     0,
       0,     0,     0,  1332,     0,     0,     0,  1860,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   677,     0,     0,
       0,     0,     0,     0,     0,     0,  2539,     0,  1332,     0,
       0,     0,  3550,     0,     0,     0,  1860,     0,  3202,     0,
       0,     0,     0,  1341,     0,     0,  1332,     0,     0,  1066,
    1066,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1341,     0,     0,     0,     0,     0,     0,     0,
       0,  2491,  1334,  2491,     0,  1570,     0,     0,  1571,     0,
       0,     0,  1341,     0,     0,     0,     0,     0,     0,     0,
     752,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1574,     0,     0,  1066,  1341,     0,  1575,
    1332,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1332,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1576,  1332,     0,     0,     0,     0,     0,
       0,     0,  1066,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1066,  1066,     0,     0,     0,     0,     0,  1341,
    1066,  1066,     0,     0,     0,  1066,     0,     0,     0,     0,
       0,  1066,  1066,     0,     0,  1066,     0,   677,   677,   677,
     677,     0,     0,     0,  3310,     0,     0,  3637,     0,     0,
    2865,     0,     0,     0,  2865,  3629,     0,     0,     0,  1332,
    3650,     0,     0,  1066,     0,     0,     0,     0,  1066,     0,
       0,     0,     0,     0,  3660,     0,     0,     0,  1332,     0,
    1066,     0,     0,     0,     0,     0,   770,     0,     0,     0,
       0,     0,     0, -2120,  2904,     0,     0,  1578,  2359,     0,
       0,     0,     0,  1332,     0,     0,     0,   621,     0,     0,
    1066,     0,     0,     0,     0,     0,     0,     0,  1579,  1580,
       0,     0,     0,  1334,     0,     0,     0,  2491,  2491,     0,
       0,     0,     0, -2120,     0,     0,     0,     0,     0,  1332,
       0,     0,   825,     0,  3698,     0,     0,     0,     0,   832,
       0,     0,     0,   752,     0,     0,     0,     0,   847,   848,
       0,  1583,     0,   850,     0,   752,     0,     0,     0,     0,
    1334,     0,     0,   864,  1584,     0,     0,     0,   738,     0,
       0,     0,     0,     0,     0,     0,   872,     0,     0,  1341,
       0,     0,   738,     0,     0,     0,     0,     0,     0,  1334,
     892,     0,     0,   894,     0,   896,     0,   899,     0,     0,
       0,     0,     0,     0,     0,     0,   868,     0,     0,     0,
       0,     0,  2309,     0,  1465,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   497,     0,     0,     0,     0,     0,     0, -2120,
       0,     0,  1066,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   955,  1334,   956,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     738,  1860,     0,     0,  1334,     0,     0,     0,     0,     0,
       0,  1332,     0,  1570,     0,     0,  1571,     0,     0,     0,
       0,     0,     0,     0,  1334,     0,     0,     0,     0,     0,
     677,     0,     0,  1572,     0,     0,     0,     0,   689,     0,
       0,  1574,     0,     0,     0,     0,   752,  1575,     0,  1334,
       0,     0,     0,     0,     0,     0,     0,     0,  1066,     0,
       0,  1590,  1591,  1592,  1593,  1594,  1595,  1066,     0,     0,
       0,  1576,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1066,  1066,     0,     0,  1066,     0,
       0,     0,     0,     0,     0,  3310,     0,     0,     0,  2865,
       0,  1334,     0,     0,  2865,     0,     0,  2865,  2539,     0,
    3839,     0,  1066,  1066,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   752,     0,   752,     0,  1274,     0,  3376,   770,   738,
     738,   738,     0,     0,     0,     0,     0,     0,     0,     0,
    1286,     0,     0,     0,     0,     0,     0,     0,  1332,     0,
       0,  1294,     0,     0,     0,   733,   770,     0,  1296,     0,
       0,  1577,     0,     0,  1570,  1578,     0,  1571,     0,     0,
    1346,     0,  2438,     0,     0,     0,     0,  1853,  2445,     0,
       0,     0,  1332,     0,  1572,  1465,  1579,  1580,  1341,     0,
       0,   733,  1574,     0,   677,     0,     0,     0,  1575,     0,
       0,  1581,  1388,     0,     0,     0,     0,  2491,     0,  1860,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3550,     0,  1576,     0,     0,   677,  1582,     0,     0,  1583,
       0,     0,     0,     0,   738,  3376,     0,     0,     0,     0,
       0,     0,  1584,     0,     0,  1585,  1570,     0,     0,  1571,
       0,     0,     0,     0,     0,     0,     0,  1066,     0,     0,
    1066,  1334,  1066,   497,     0,   497,  1572,   497,     0,   497,
       0,   497,   497,   497,  1574,     0,     0,     0,   497,  1066,
    1575,     0,     0,  2865,     0,     0,  3839,     0,     0,  1332,
       0,     0,  3966,     0,     0,     0,     0,     0,     0,     0,
    1332,     0,     0,     0,  1576,     0,     0,     0,     0,     0,
       0,     0,   738,     0,     0,  1341,   677,  1586,     0,     0,
       0,     0,  1577,     0,     0,     0,  1578,     0,     0,   738,
     738,   738,   738,     0,     0,     0,     0,     0,     0,   868,
       0,     0,     0,     0,     0,     0,     0,  1579,  1580,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1066,  1581,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1582,  1853,     0,
    1583,     0,     0,     0,     0,     0,     0,     0,     0,  1332,
       0,     0,     0,  1584,  1577,  1587,  1588,  1589,  1578,  1590,
    1591,  1592,  1593,  1594,  1595,     0,  1066,     0,     0,  3277,
    1332,     0,   738,     0,   770,     0,     0,     0,     0,  1579,
    1580,  1066,  1332,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1581,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   689,     0,     0,     0,     0,
       0,   738,     0,     0,   733,     0,     0,     0,  1341,  1582,
    1332,     0,  1583,  3376,     0,     0,     0,     0,  1586,     0,
       0,     0,     0,     0,     0,  1584,     0,  3966,  1585,     0,
    1066,  1066,     0,   752,     0,     0,     0,     0,     0,     0,
       0,  1570,     0,   733,  1571,     0,     0,     0,     0,     0,
       0,   738,     0,     0,  1824,     0,     0,     0,     0,     0,
       0,  1572,     0,     0,     0,     0,     0,     0,     0,  1574,
       0,     0,     0,     0,  1334,  1575,  1066,     0,     0,  1334,
    1334,     0,     0,     0,     0,     0,  1066,     0,     0,     0,
    1334,   738,     0,     0,     0,     0,     0,     0,     0,  1576,
    1586,     0,     0,     0,     0,     0,  1587,  1588,  1589,     0,
    1590,  1591,  1592,  1593,  1594,  1595,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   735,     0,     0,
       0,     0,     0,     0,     0,   735,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1066,     0,     0,     0,     0,
       0,     0,     0,     0,   733,     0,  1332,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2309,  2309,
    2309,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1587,  1588,
    1589,     0,  1590,  1591,  1592,  1593,  1594,  1595,     0,  1577,
       0,     0,  3349,  1578,     0,     0,     0,  1335,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1334,     0,     0,
       0,     0,     0,     0,  1579,  1580,     0,     0,     0,     0,
       0,     0,     0,     0,  2010,     0,     0,     0,     0,  1581,
       0,     0,     0,     0,     0,     0,     0,  2032,     0,     0,
       0,     0,     0,     0,     0,  1332,     0,     0,     0,     0,
       0,     0,     0,     0,  1582,     0,     0,  1583,     0,     0,
    1341,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1584,     0,     0,  1585,     0,  2073,     0,     0,     0,  2077,
    1334,     0,     0,     0,     0,     0,     0,     0,  2086,     0,
    2088,     0,  2089,     0,     0,     0,     0,  2090,  1853,  2445,
       0,  2445,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     497,     0,   497,  1335,   497,     0,   497,     0,   497,     0,
       0,  1332,   497,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1586,     0,     0,     0,     0,
       0,  1341,  1332,  1341,     0,     0,     0,     0,     0,  1570,
    1334,     0,  1571,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1572,
       0,     0,  1332,     0,     0,     0,     0,  1574,     0,     0,
       0,     0,     0,  1575,     0,     0,     0,  1341,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1332,  1576,  1341,     0,
    1332,  1332,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1587,  1588,  1589,     0,  1590,  1591,  1592,
    1593,  1594,  1595,  2445,     0,     0,     0,  3370,     0,     0,
       0,     0,     0,     0,   735,     0,     0,     0,     0,     0,
       0,  2445,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1570,     0,     0,  1571,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   735,     0,
       0,     0,  1572,     0,     0,     0,     0,   735,     0,     0,
    1574,     0,     0,     0,  1335,     0,  1575,  1577,     0,     0,
       0,  1578,     0,     0,     0,  1341,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2445,     0,
    1576,     0,  1579,  1580,     0,     0,     0,     0,     0,  1341,
       0,     0,     0,     0,     0,     0,     0,  1581,     0,     0,
       0,  1335,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1582,     0,     0,  1583,     0,     0,     0,     0,
    1335,     0,     0,     0,     0,     0,     0,     0,  1584,     0,
     735,  1585,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1341,     0,     0,     0,     0,     0,
       0,     0,  1334,     0,     0,     0,     0,     0,     0,   735,
       0,     0,     0,  1341,     0,     0,     0,     0,     0,     0,
    1577,     0,     0,     0,  1578,  2366,  2367,     0,     0,     0,
    2370,  2371,     0,     0,  2374,     0,  1335,     0,  1341,     0,
    1334,  1334,     0,  1334,  2384,  1579,  1580,     0,     0,     0,
       0,  2392,     0,  1586,     0,  1335,     0,  2397,  2398,     0,
    1581,     0,     0,     0,     0,     0,     0,     0,  2412,     0,
    2414,     0,     0,     0,  1341,  1335,     0,     0,  1570,     0,
       0,  1571,     0,     0,  2434,  1582,     0,     0,  1583,  2436,
       0,     0,     0,  1334,     0,  1334,     0,     0,  1572,     0,
    1335,  1584,     0,     0,  1585,     0,  1574,     0,     0,     0,
       0,     0,  1575,     0,  2309,  2452,  2453,  2456,  2458,   735,
       0,     0,  2465,  2468,     0,     0,     0,     0,     0,   735,
    2479,     0,     0,  2483,     0,     0,  1576,  2487,     0,  1334,
       0,  1587,  1588,  1589,     0,  1590,  1591,  1592,  1593,  1594,
    1595,  1342,  1335,  2510,     0,  3597,     0,     0,     0,     0,
    1334,     0,     0,  2513,     0,  2515,     0,     0,     0,     0,
       0,     0,     0,  2518,  2519,  2520,  1586,  2522,     0,     0,
       0,     0,     0,     0,   735,  1334,     0,     0,     0,     0,
    2545,  2546,  2547,     0,     0,     0,     0,     0,     0,     0,
    2552,  2553,     0,  1334,     0,     0,     0,     0,     0,     0,
       0,  1337,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2445,     0,     0,     0,
       0,     0,   735,     0,     0,     0,  1577,     0,     0,     0,
    1578,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2615,  1579,  1580,     0,  1587,  1588,  1589,  1334,  1590,  1591,
    1592,  1593,  1594,  1595,     0,     0,  1581,  1342,  3631,     0,
    1334,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1334,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1582,     0,     0,  1583,     0,   735,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1584,     0,     0,
    1585,     0,  1335,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   735,     0,     0,  1337,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1570,     0,     0,  1571,     0,     0,  1334,     0,     0,     0,
       0,     0,   735,   735,     0,   735,     0,     0,  1570,     0,
    1572,  1571,     0,  1341,     0,  1334,     0,     0,  1574,     0,
       0,     0,   735,     0,  1575,     0,     0,     0,     0,     0,
       0,     0,  1586,     0,     0,     0,  1574,     0,  2735,     0,
    1334,     0,  1575,     0,     0,     0,     0,  1853,  1576,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     735,  1716,     0,     0,     0,     0,  1576,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1334,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   735,
       0,     0,     0,   735,   735,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1342,     0,
       0,     0,     0,     0,  1716,     0,     0,     0,     0,     0,
    1587,  1588,  1589,     0,  1590,  1591,  1592,  1593,  1594,  1595,
       0,     0,     0,     0,  3817,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1577,     0,
       0,     0,  1578,     0,  1341,  1342,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1341,  1577,     0,  1337,     0,
    1578,     0,     0,  1579,  1580,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1342,     0,     0,     0,  1581,     0,
       0,  1579,  1580,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  2309,     0,     0,     0,  1581,  2309,     0,     0,
       0,     0,     0,  1582,     0,  1337,  1583,     0,     0,  2309,
       0,     0,     0,     0,     0,     0,     0,     0,  1334,  1584,
       0,  1582,  1585,     0,  1583,  1335,     0,     0,     0,     0,
    1335,  1335,     0,     0,  1337,     0,     0,  1584,     0,     0,
    1342,  1335,     0,     0,     0,  2914,  2915,     0,     0,     0,
       0,     0,     0,     0,  1341,     0,     0,     0,     0,  1342,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1341,     0,     0,     0,  1342,
       0,     0,     0,     0,     0,     0,     0,  1341,     0,     0,
       0,     0,     0,     0,  1586,     0,     0,     0,     0,  1716,
    1337,  2946,  2948,     0,  1342,  2948,     0,     0,     0,  2955,
    2956,  2957,  1586,     0,     0,     0,     0,     0,     0,  1337,
       0,     0,     0,     0,     0,  1341,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1337,
       0,     0,     0,  2975,  2976,  2977,  2978,     0,     0,     0,
     735,     0,     0,     0,     0,     0,  1342,     0,     0,   735,
       0,     0,     0,     0,  1337,  1334,     0,     0,  1335,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3003,
       0,     0,  1587,  1588,  1589,     0,  1590,  1591,  1592,  1593,
    1594,  1595,     0,     0,     0,     0,  3857,     0,     0,  1334,
    1587,  1588,  1589,     0,  1590,  1591,  1592,  1593,  1594,  1595,
       0,     0,     0,     0,     0,     0,  1337,     0,     0,     0,
       0,     0,     0,     0,     0,   735,     0,     0,     0,     0,
       0,     0,  3035,     0,     0,     0,  3791,  3037,     0,     0,
       0,  1335,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   735,     0,
     735,     0,     0,     0,     0,     0,     0,   735,     0,     0,
     735,  1341,     0,   735,     0,     0,  1570,     0,     0,  1571,
       0,   735,   735,     0,     0,     0,     0,     0,     0,   735,
       0,     0,   735,   735,   735,   735,  1572,     0,     0,  3122,
       0,     0,   735,   735,  1574,   735,  1334,   735,   735,  3129,
    1575,   735,     0,     0,     0,     0,     0,  1334,     0,     0,
       0,  1335,     0,     0,     0,     0,  1342,   735,  1716,     0,
       0,     0,   735,     0,  1576,  3148,   735,  3150,     0,     0,
     735,     0,   735,   735,   735,   735,   735,   735,   735,   735,
     735,     0,   735,     0,     0,     0,     0,   735,     0,   735,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2445,     0,     0,     0,  3190,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1337,  3199,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1570,     0,     0,
    1571,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1334,  1572,     0,     0,
       0,     0,     0,     0,     0,  1574,     0,     0,     0,     0,
       0,  1575,     0,     0,  1577,     0,     0,  1334,  1578,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1334,
       0,     0,     0,     0,     0,  1576,  2445,     0,     0,  1579,
    1580,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1581,     0,     0,  1341,     0,     0,
       0,     0,     0,   735,     0,     0,     0,  1334,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1582,
       0,     0,  1583,     0,     0,     0,     0,  1341,     0,     0,
       0,     0,     0,     0,     0,  1584,     0,     0,  1585,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1716,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1341,     0,     0,     0,  1341,  1341,     0,     0,     0,
       0,     0,     0,     0,     0,  1577,     0,     0,   735,  1578,
       0,     0,     0,   735,     0,     0,     0,     0,     0,   735,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1579,  1580,     0,  1335,     0,     0,     0,     0,     0,     0,
    1586,     0,     0,     0,     0,  1581,     0,     0,     0,  1342,
       0,     0,     0,     0,  1342,  1342,     0,  3791,     0,     0,
       0,     0,     0,     0,     0,  1342,     0,     0,     0,  3387,
    1582,  1335,  1335,  1583,  1335,     0,     0,     0,     0,     0,
       0,  1716,     0,  1334,  1716,     0,  1584,     0,     0,  1585,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  3408,     0,     0,     0,     0,     0,  1337,
       0,     0,     0,     0,  1337,  1337,     0,     0,     0,     0,
       0,     0,     0,     0,  1335,  1337,  1335,     0,  1587,  1588,
    1589,     0,  1590,  1591,  1592,  1593,  1594,  1595,     0,     0,
       0,     0,  3898,  3436,     0,     0,     0,     0,  3443,  3444,
       0,  3446,  3447,  3448,  3449,  3450,  3451,  3452,     0,     0,
       0,  1586,     0,     0,     0,     0,  3459,     0,  1570,     0,
    1335,  1571,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1334,     0,     0,     0,     0,     0,  1572,     0,
     735,  1335,  1342,     0,     0,     0,  1574,     0,     0,     0,
       0,     0,  1575,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1335,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1576,     0,     0,     0,
       0,     0,     0,     0,  1335,  3508,  3510,  3512,     0,     0,
    3515,     0,     0,     0,     0,     0,     0,     0,     0,  1587,
    1588,  1589,  1337,  1590,  1591,  1592,  1593,  1594,  1595,     0,
       0,     0,     0,  4073,     0,  1342,     0,     0,  1334,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1053,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1334,
       0,     0,     0,     0,     0,     0,     0,     0,  1335,     0,
       0,     0,     0,     0,     0,   735,     0,     0,  1109,     0,
       0,  1335,     0,     0,     0,     0,     0,     0,  2948,  1334,
       0,     0,  1335,     0,     0,  1337,  1577,     0,     0,     0,
    1578,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1342,     0,     0,     0,     0,
       0,  1579,  1580,  1334,     0,     0,     0,  1334,  1334,   735,
       0,     0,     0,   735,     0,     0,  1581,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   735,   735,
       0,     0,     0,     0,     0,     0,     0,  1335,     0,     0,
       0,  1582,     0,     0,  1583,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1337,  1335,  1584,   735,   735,
    1585,     0,     0,   735,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   735,   735,   735,   735,     0,
       0,  1335,  1570,  1716,     0,  1571,     0,     0,   735,  1716,
       0,   735,     0,   735,     0,     0,     0,     0,     0,     0,
       0,     0,  1572,   735,   735,     0,     0,   735,     0,     0,
    1574,     0,     0,     0,     0,     0,  1575,  1335,     0,     0,
     735,     0,   735,     0,     0,     0,   735,     0,     0,     0,
       0,     0,  1586,     0,     0,     0,     0,     0,     0,     0,
    1576,     0,   735,     0,     0,  1570,     0,     0,  1571,     0,
       0,     0,     0,   735,     0,   735,   735,   735,     0,     0,
       0,     0,     0,     0,     0,  1572,     0,     0,     0,  2329,
       0,     0,   735,  1574,     0,     0,     0,     0,  3693,  1575,
       0,     0,     0,   735,     0,     0,     0,     0,   735,     0,
       0,     0,     0,     0,     0,   735,     0,  3704,  3705,     0,
       0,   735,     0,  1576,     0,     0,     0,     0,     0,  3714,
    3715,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1587,  1588,  1589,     0,  1590,  1591,  1592,  1593,  1594,  1595,
       0,     0,     0,     0,  4157,     0,     0,     0,   735,     0,
    1577,     0,     0,     0,  1578,     0,     0,     0,  2330,     0,
       0,     0,     0,     0,     0,  1510,     0,  1342,     0,     0,
       0,     0,     0,     0,     0,  1579,  1580,     0,     0,  1335,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1581,     0,     0,  1533,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1342,  1342,     0,  1342,     0,
       0,     0,     0,  1577,     0,  1582,     0,  1578,  1583,     0,
       0,  1558,  1559,     0,  1561,     0,  3761,  1337,     0,     0,
       0,  1584,     0,     0,  1585,  1716,  1716,  1716,  1579,  1580,
       0,  1600,     0,     0,     0,     0,     0,     0,     0,     0,
    3781,     0,     0,  1581,     0,     0,     0,     0,  1342,     0,
    1342,     0,     0,     0,     0,  1337,  1337,     0,  1337,     0,
       0,  3799,     0,     0,     0,     0,     0,     0,  1582,  1635,
       0,  1583,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1584,     0,     0,  1585,     0,     0,
       0,     0,     0,     0,  1342,     0,  1586,     0,  1737,     0,
       0,     0,  1747,  1750,     0,     0,     0,     0,  1337,     0,
    1337,     0,     0,     0,     0,  1342,  1335,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1716,     0,     0,
    1342,     0,     0,     0,     0,     0,     0,   497,     0,     0,
    1335,     0,     0,     0,  1337,     0,     0,  1716,  1342,  1586,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1337,     0,     0,     0,     0,
       0,     0,     0,     0,  1587,  1588,  1589,     0,  1590,  1591,
    1592,  1593,  1594,  1595,     0,     0,  3345,     0,     0,     0,
    1337,     0,     0,     0,     0,     0,     0,     0,  2331,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1337,     0,
       0,     0,  1342,     0,  1597,     0,     0,     0,     0,     0,
    1338,     0,     0,     0,     0,  1342,     0,     0,     0,  3905,
       0,     0,     0,     0,     0,     0,  1342,  1587,  1588,  1589,
       0,  1590,  1591,  1592,  1593,  1594,  1595,  1335,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1335,     0,
       0,     0,     0,   735,     0,     0,  2948,     0,     0,     0,
    1597,     0,  1337,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1337,     0,     0,     0,     0,
       0,     0,  1339,     0,     0,     0,  1337,     0,   735,     0,
       0,  1342,     0,     0,     0,     0,     0,   735,     0,     0,
       0,     0,     0,   735,     0,   735,     0,     0,     0,     0,
    1342,   735,     0,     0,   735,   735,   735,   735,   735,   735,
     735,   735,   735,   735,     0,     0,     0,   735,   735,     0,
       0,     0,     0,     0,     0,  1342,  1338,     0,     0,     0,
     735,     0,     0,     0,   735,     0,  1716,  1335,   735,     0,
       0,  1337,     0,     0,     0,     0,     0,     0,   735,     0,
       0,   735,     0,   735,     0,     0,     0,     0,  1335,     0,
    1337,  1342,   735,   735,   735,     0,     0,     0,   735,     0,
    1335,   735,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   735,     0,     0,     0,  1337,     0,     0,     0,     0,
       0,   735,     0,     0,     0,  2948,     0,     0,  1339,   735,
       0,   735,     0,     0,     0,     0,     0,     0,  1335,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1337,     0,     0,   735,     0,     0,     0,     0,     0,
     735,     0,     0,     0,     0,     0,   735,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   735,     0,     0,     0,     0,  2177,     0,     0,     0,
       0,  4070,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2199,     0,
       0,  2201,     0,     0,  2212,     0,     0,     0,     0,     0,
       0,  2219,  2224,     0,     0,     0,     0,  2230,     0,     0,
    2235,     0,     0,     0,     0,     0,     0,     0,  1716,     0,
       0,     0,  1716,  1342,  1716,     0,  2244,  1338,     0,     0,
       0,  2251,     0,     0,     0,  2263,     0,     0,     0,  2270,
       0,  2272,  2273,  2274,  2275,  2276,  2277,  2278,  2279,  2280,
       0,  2281,     0,     0,     0,     0,  1053,     0,  2306,     0,
       0,     0,     0,     0,  1335,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1338,     0,     0,     0,     0,     0,
       0,     0,     0,  1337,     0,     0,  1597,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1339,
       0,     0,     0,  1338,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   509,     0,     0,   735,     0,  1339,     0,     0,     0,
       0,     0,     0,   510,     0,     0,     0,     0,     0,     0,
       0,  1597,     0,  1335,     0,     0,     0,     0,     0,  1338,
    1342,     0,     0,     0,   511,  1339,     0,     0,     0,     0,
       0,     0,  1109,     0,  1597,     0,     0,   512,  1338,  2208,
       0,     0,     0,     0,     0,     0,   513,     0,     0,     0,
    -682,     0,     0,     0,  1342,   735,   735,     0,  1338,  1597,
    1597,  1570,  1597,     0,  1571,     0,     0,   514,     0,     0,
       0,     0,     0,   515,     0,     0,     0,     0,     0,     0,
    1337,  1572,     0,  1338,     0,     0,     0,     0,   516,  1574,
       0,  1339,     0,     0,     0,  1575,     0,     0,     0,  1335,
       0,  1597,     0,     0,     0,     0,   517,  2395,     0,     0,
    1339,     0,   735,     0,  1337,     0,     0,   518,     0,  1576,
    1335,     0,     0,     0,   519,     0,     0,     0,   520,     0,
    1339,     0,     0,     0,     0,  1338,  1597,     0,     0,     0,
       0,     0,     0,  -863,     0,     0,     0,     0,   735,     0,
    1335,     0,     0,     0,     0,  1339,     0,     0,   735,   735,
       0,  1342,     0,     0,     0,     0,   735,   735,     0,     0,
       0,   735,  1342,     0,     0,     0,     0,   735,   735,     0,
     521,   735,     0,     0,  1335,     0,     0,     0,  1335,  1335,
       0,     0,     0,     0,     0,     0,   735,     0,  2792,     0,
     735,     0,     0,  2793,     0,  1570,     0,  1339,  1571,   735,
       0,     0,     0,     0,   735,     0,     0,   522,     0,  1577,
     523,  1337,     0,  1578,     0,  1572,   735,     0,     0,     0,
       0,     0,  1337,  1574,     0,     0,     0,     0,  1597,  1575,
       0,     0,     0,     0,  1579,  1580,     0,     0,  1597,     0,
       0,  1597,     0,     0,     0,     0,   735,     0,     0,  1581,
       0,     0,     0,  1576,     0,     0,     0,     0,     0,     0,
     524,  1342,     0,     0,     0,     0,   525,     0,     0,     0,
       0,     0,  -360,     0,  1582,   526,     0,  1583,     0,  2588,
       0,     0,  1342,     0,     0,     0,     0,     0,     0,     0,
    1584,     0,     0,  1585,  1342,  1338,     0,     0,     0,     0,
    -360,     0,   527,   528,     0,   529,   530,     0,     0,     0,
       0,     0,     0,     0,   531,     0,     0,     0,     0,   532,
       0,  1337,     0,     0,   533,     0,     0,   534,     0,     0,
     535,     0,  1342,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1337,  -360,     0,     0,     0,     0,     0,     0,
    1716,     0,     0,  1577,  1337,     0,     0,  1578,     0,     0,
       0,     0,     0,     0,     0,  1586,     0,  1339,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1579,  1580,
       0,     0,     0,     0,     0,     0,     0,   172,   735,     0,
       0,     0,  1337,  1581,  2709,     0,     0,     0,     0,     0,
    1716,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1582,     0,
       0,  1583,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   173,  1584,     0,     0,  1585,     0,     0,
       0,     0,     0,  1342,     0,     0,   174,     0,     0,     0,
       0,     0,     0,  1587,  1588,  1589,  3269,  1590,  1591,  1592,
    1593,  1594,  1595,   175,     0,     0,     0,     0,  2752,   176,
       0,     0,     0,     0,   735,     0,     0,     0,  1342,     0,
       0,     0,     0,   735,   177,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     735,   735,   178,     0,   735,     0,     0,     0,     0,  1586,
       0,     0,     0,   179,  2224,   735,  2224,  2224,   180,     0,
     735,     0,  3270,   735,   181,     0,     0,  2814,   735,   735,
    2817,     0,  2819,     0,     0,     0,     0,     0,  1337,   182,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   735,     0,     0,     0,     0,     0,  2840,
       0,  2842,     0,     0,   183,  2845,     0,     0,  1338,     0,
       0,     0,     0,  1338,  1338,     0,     0,  1342,     0,     0,
       0,   735,     0,     0,  1338,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2306,  2306,  2306,  1587,  1588,  1589,
       0,  1590,  1591,  1592,  1593,  1594,  1595,     0,     0,     0,
       0,  2882,     0,   184,     0,     0,     0,   735,     0,     0,
       0,     0,  1737,     0,     0,     0,     0,  2892,     0,     0,
       0,     0,     0,     0,  1750,     0,     0,  1337,     0,     0,
    1339,   185,     0,     0,     0,  1339,  1339,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1339,     0,     0,     0,
       0,   735,     0,  1342,     0,     0,   186,     0,  1597,     0,
       0,     0,   187,     0,     0,     0,     0,  2923,   188,     0,
       0,   189,     0,   735,  1342,     0,   735,     0,   735,     0,
    1597,     0,  1597,     0,  2208,  2208,  2788,     0,     0,  2208,
       0,     0,     0,  1597,     0,   735,   190,     0,   191,   735,
    1597,  1338,   192,     0,  1342,  1597,     0,     0,     0,     0,
     193,  1597,     0,  1337,     0,   194,  1597,     0,     0,     0,
       0,     0,     0,     0,     0,  1597,   195,     0,     0,  2208,
    2208,     0,  1597,     0,  1337,     0,     0,     0,  1342,   196,
       0,     0,  1342,  1342,  1597,     0,     0,     0,     0,     0,
       0,  1597,     0,  1597,  1597,  1597,  1597,  1597,  1597,  1597,
    1597,  1597,  1597,     0,  1337,  1570,     0,     0,  1571,  1716,
       0,     0,     0,  1339,  1338,     0,     0,   735,     0,     0,
       0,     0,     0,     0,     0,  1572,     0,  1597,     0,     0,
       0,     0,     0,  1574,     0,     0,     0,     0,  1337,  1575,
       0,     0,  1337,  1337,  1342,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1576,     0,     0,     0,     0,     0,     0,
       0,     0,   735,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1339,   735,     0,     0,
       0,     0,     0,     0,  1338,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1597,     0,     0,     0,
     735,     0,     0,     0,     0,     0,     0,     0,     0,   735,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  4131,     0,     0,     0,     0,   735,   735,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   735,
       0,     0,     0,  1577,     0,     0,  1339,  1578,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1579,  1580,
       0,     0,   735,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   735,  1581,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1716,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1582,     0,
       0,  1583,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1584,     0,     0,  1585,  1570,     0,
       0,  1571,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   735,     0,     0,  4132,     0,  1716,     0,  1572,     0,
     735,  2756,     0,     0,  1716,     0,  1574,  3228,     0,     0,
       0,     0,  1575,     0,     0,     0,  3231,     0,     0,     0,
       0,     0,  3232,     0,  3233,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1576,     0,     0,  1597,
       0,     0,     0,     0,     0,     0,  3251,  3252,     0,  1586,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  2230,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3280,     0,     0,
    3283,     0,  3285,     0,     0,     0,  1338,     0,     0,     0,
       0,  3289,     0,     0,     0,     0,     0,  3294,     0,     0,
    3297,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3326,     0,     0,     0,  1338,  1338,     0,  1338,  3338,     0,
    2306,     0,     0,     0,     0,     0,  1577,  1587,  1588,  1589,
    1578,  1590,  1591,  1592,  1593,  1594,  1595,     0,     0,     0,
       0,     0,     0,  3352,     0,     0,     0,     0,  1339,  1053,
    1597,  1579,  1580,     0,     0,  1109,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1581,  1338,     0,  1338,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1339,  1339,     0,  1339,
       0,  1582,     0,  1597,  1583,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1584,     0,     0,
    1585,     0,     0,  1338,  2788,  2788,     0,  2208,     0,     0,
    2208,  2208,  2208,  2208,  2208,  2208,  2208,  2208,  2208,  2208,
    2788,     0,     0,  1570,  1338,     0,  1571,     0,     0,  1339,
       0,  1339,     0,     0,  1570,     0,     0,  1571,     0,     0,
       0,     0,     0,  1572,     0,  1597,     0,     0,  1597,  1338,
    1597,  1574,     0,     0,  1572,  2788,  2788,  1575,     0,     0,
       0,     0,  1574,     0,     0,     0,     0,  1338,  1575,  2208,
    2208,  1597,  1586,  1597,     0,  1339,  1597,     0,     0,     0,
       0,  1576,     0,  1570,     0,     0,  1571,     0,     0,     0,
       0,     0,  1576,     0,     0,     0,  1339,     0,     0,     0,
       0,     0,     0,  1572,     0,     0,  2800,     0,     0,     0,
       0,  1574,     0,  1597,     0,     0,     0,  1575,     0,     0,
       0,  1339,     0,  1597,     0,     0,     0,     0,     0,     0,
       0,  1338,     0,     0,     0,     0,     0,     0,     0,  1339,
       0,  1576,     0,     0,  1338,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1597,  1338,     0,     0,     0,     0,
    1587,  1588,  1589,     0,  1590,  1591,  1592,  1593,  1594,  1595,
       0,     0,     0,     0,     0,     0,  2805,     0,     0,     0,
       0,  1577,     0,     0,     0,  1578,     0,     0,     0,     0,
       0,     0,  1577,     0,     0,     0,  1578,     0,     0,     0,
       0,     0,     0,  1339,  3565,  3566,  1579,  1580,     0,     0,
       0,     0,     0,     0,     0,     0,  1339,  1579,  1580,     0,
    1338,  1581,     0,     0,     0,     0,     0,  1339,     0,     0,
       0,     0,  1581,     0,     0,     0,     0,     0,     0,  1338,
       0,  1577,     0,     0,     0,  1578,  1582,     0,     0,  1583,
       0,     0,     0,     0,     0,     0,     0,  1582,     0,     0,
    1583,  3595,  1584,     0,  1338,  1585,  1579,  1580,     0,     0,
       0,     0,     0,  1584,     0,     0,  1585,     0,     0,  2770,
       0,  1581,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1339,     0,     0,     0,     0,     0,     0,     0,
    1338,     0,     0,     0,     0,     0,  1582,  3613,  3615,  1583,
       0,  1339,     0,     0,     0,     0,     0,     0,     0,     0,
    3622,     0,  1584,     0,     0,  1585,  3627,  3628,     0,     0,
    3630,     0,     0,     0,     0,     0,  1339,  1586,     0,     0,
    2208,     0,     0,     0,     0,     0,     0,     0,  1586,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2306,     0,
       0,     0,     0,  2306,     0,  1570,     0,     0,  1571,     0,
       0,     0,  1339,     0,     0,  2306,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1572,     0,     0,  2811,     0,
       0,     0,     0,  1574,     0,     0,     0,  1586,     0,  1575,
       0,     0,     0,     0,     0,  3676,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1576,     0,  1587,  1588,  1589,     0,  1590,
    1591,  1592,  1593,  1594,  1595,     0,  1587,  1588,  1589,     0,
    1590,  1591,  1592,  1593,  1594,  1595,     0,     0,     0,     0,
       0,     0,  1338,     0,     0,     0,     0,     0,     0,  1597,
       0,     0,  1597,  1597,  1597,     0,     0,  2788,     0,     0,
       0,     0,  2788,  2788,  2788,  2788,  2788,  2788,  2788,  2788,
    2788,  2788,  1597,  1597,     0,  1587,  1588,  1589,     0,  1590,
    1591,  1592,  1593,  1594,  1595,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1597,  2208,  2208,  1597,     0,  1597,     0,     0,     0,
    1597,  2788,  2788,  1577,  1339,  1597,     0,  1578,  1597,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3748,  1579,  1580,
       0,     0,     0,     0,     0,     0,     0,  1597,     0,     0,
       0,     0,     0,  1581,     0,     0,     0,     0,     0,  1597,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1597,  -115,     0,     0,     0,  1582,     0,
       0,  1583,     0,     0,     0,     0,     0,     0,     1,  1338,
       0,     0,     0,     0,  1584,     0,     0,  1585,     2,     0,
       3,     4,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     5,     0,     0,     0,     0,
       0,     0,     0,  1338,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     6,     0,     7,     8,     0,
       0,     0,     0,     9,     0,    10,     0,     0,     0,     0,
       0,     0,     0,  3825,     0,    11,     0,    12,     0,     0,
       0,  1339,     0,     0,     0,     0,     0,     0,     0,  1586,
       0,     0,     0,    13,     0,     0,    14,     0,  3842,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    15,     0,
      16,     0,     0,     0,    17,  1339,     0,     0,     0,     0,
      18,     0,     0,     0,     0,     0,     0,    19,     0,    20,
       0,     0,     0,     0,     0,    21,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    22,
    1338,     0,     0,     0,     0,     0,     0,  2788,     0,     0,
       0,  1338,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1587,  1588,  1589,
       0,  1590,  1591,  1592,  1593,  1594,  1595,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1570,    23,    24,  1571,     0,  1597,  1597,    25,     0,
       0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
       0,  1572,  1339,     0,     0,     0,     0,    27,     0,  1574,
       0,     0,     0,  1339,     0,  1575,  1597,     0,     0,     0,
    2208,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1597,  2230,  1597,     0,     0,  1576,
    1338,  2788,  2788,  1597,    28,     0,  2208,  2208,  1597,  1597,
       0,  1597,     0,     0,  3957,    29,     0,     0,     0,     0,
      30,  1338,    31,     0,     0,     0,     0,    32,     0,     0,
       0,     0,    33,  1338,     0,    34,     0,     0,     0,    35,
       0,     0,     0,     0,    36,    37,     0,     0,     0,     0,
       0,     0,    38,     0,     0,    39,  1570,  1597,     0,  1571,
       0,     0,    40,     0,     0,     0,     0,     0,     0,     0,
       0,  1338,  1339,     0,    41,     0,  1572,     0,     0,  3276,
       0,     0,     0,     0,  1574,     0,     0,     0,     0,     0,
    1575,    42,     0,  1339,     0,     0,  4014,     0,     0,  1577,
      43,     0,     0,  1578,     0,  1339,    44,     0,     0,     0,
       0,    45,     0,     0,  1576,     0,     0,     0,     0,     0,
       0,     0,     0,    46,  1579,  1580,     0,     0,     0,  1597,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1581,
       0,     0,     0,  1339,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    47,     0,     0,
    -115,     0,     0,     0,  1582,     0,  4053,  1583,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1584,     0,     0,  1585,     0,     0,     0,     0,  2788,  2208,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2788,  2788,  1597,     0,     0,     0,
       0,     0,     0,     0,  1577,     0,     0,  1338,  1578,     0,
       0,     0,     0,  1597,     0,  4090,  4090,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1579,
    1580,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1581,  1586,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  4090,     0,     0,     0,     0,     0,     0,     0,  1582,
    3227,  4135,  1583,     0,     0,     0,     0,     0,     0,  1339,
       0,     0,     0,     0,     0,  1584,     0,     0,  1585,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1338,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2788,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1597,     0,
    4090,     0,     0,  1587,  1588,  1589,     0,  1590,  1591,  1592,
    1593,  1594,  1595,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1586,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1339,     0,
       0,     0,     0,     0,     0,  1597,     0,     0,     0,     0,
       0,     0,  1338,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1338,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1597,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1338,     0,     0,     0,     0,  1587,  1588,
    1589,     0,  1590,  1591,  1592,  1593,  1594,  1595,     0,     0,
       0,  1597,     0,     0,  1339,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1338,     0,     0,
       0,  1338,  1338,     0,     0,  1339,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1597,     0,     0,     0,
       0,     0,     0,     0,     0,  1339,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   709,   972,   548,   973,   974,
     975,   595,   976,     0,     0,     0,   200,   201,   202,   203,
     204,   205,   206,   207,  2300,   209,   210,   211,     0,  1339,
       0,     0,   977,  1339,  1339,   212,   213,     0,   214,   215,
     710,   216,   217,   218,   219,   978,   711,   979,   980,     0,
     223,   224,   225,   226,   227,   981,   982,   228,   229,   983,
     984,   232,     0,   233,   234,   235,   236,   985,     0,   238,
       0,   239,   240,   241,   242,   712,   243,   244,     0,   245,
     246,   247,   248,   249,   250,     0,   713,   251,   252,   986,
     987,   988,   989,   990,   991,   992,   253,   254,   255,   256,
     257,   258,   993,   994,   261,     0,   262,     0,   263,   264,
     265,   266,   267,     0,   268,   269,   270,  2301,     0,   271,
     272,   995,   274,   275,     0,   276,   277,   278,     0,   279,
     280,     0,   281,   282,   283,   284,   996,   286,   287,   288,
     997,   998,   290,     0,   291,   999,   293,     0,   294,     0,
     295,   715,     0,   716,   296,   297,   298,     0,   299,  1000,
       0,   301,     0,   302,   303,   304,   305,   306,   717,   307,
     308,   309,     0,   310,   311,   312,   313,   314,   315,     0,
     316,   718,   317,   318,   319,   320,   321,  1001,  1002,     0,
    1003,     0,   325,   719,   720,   326,   721,   327,   328,   329,
     330,   331,   332,   333,     0,  1004,   722,   335,   723,     0,
     336,   337,   338,  1005,  1006,   339,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,   350,  1007,   724,  1008,
     353,   354,   355,  1009,   356,   357,   725,   358,  1010,  1011,
     360,  1012,   362,   363,   364,     0,   365,     0,     0,  1013,
     367,   368,     0,     0,   369,   726,   727,   728,  1014,   371,
     372,   373,   374,   375,   376,   377,     0,   378,  1015,   380,
     381,   382,   383,   384,     0,   385,   386,   387,   388,   389,
     390,   391,  1016,   393,   394,   395,   396,     0,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     0,   407,
     408,   729,   409,   410,  1017,   412,   413,   414,   415,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,  1018,
     425,   426,   427,   428,   730,   429,  1019,     0,   431,   432,
     433,   434,   435,   436,   437,   438,   439,   440,  1020,     0,
     442,   443,     0,   444,   445,   446,   447,   448,   449,     0,
    1021,  1022,     0,     0,   452,  1023,   454,  1024,  1025,   456,
     457,   458,   459,   460,   461,     0,  1026,   462,   463,   464,
     465,   466,  1027,     0,   467,   468,   469,   470,   471,   472,
    1028,  2302,   474,   731,   475,   476,   477,     0,     0,   478,
       0,     0,   479,   480,   481,   482,   483,   484,  1029,  1030,
    1031,  1032,  1033,  1034,  1035,  1036,   493,   494,   495,     0,
       0,     0,     0,     0,     0,     0,  1037,  1038,  2303,     0,
       0,     0,     0,     0,     0,  1040,  2304,   709,   972,   548,
     973,   974,   975,   595,   976,     0,     0,     0,   200,   201,
     202,   203,   204,   205,   206,   207,     0,   209,   210,   211,
       0,     0,     0,     0,   977,     0,     0,   212,   213,     0,
     214,   215,   710,   216,   217,   218,   219,   978,   711,   979,
     980,     0,   223,   224,   225,   226,   227,   981,   982,   228,
     229,   983,   984,   232,     0,   233,   234,   235,   236,   985,
       0,   238,     0,   239,   240,   241,   242,   712,   243,   244,
       0,   245,   246,   247,   248,   249,   250,     0,   713,   251,
     252,   986,   987,   988,   989,   990,   991,   992,   253,   254,
     255,   256,   257,   258,   993,   994,   261,     0,   262,     0,
     263,   264,   265,   266,   267,     0,   268,   269,   270,     0,
       0,   271,   272,   995,   274,   275,     0,   276,   277,   278,
       0,   279,   280,     0,   281,   282,   283,   284,   996,   286,
     287,   288,   997,   998,   290,     0,   291,   999,   293,     0,
     294,     0,   295,   715,     0,   716,   296,   297,   298,     0,
     299,  1000,     0,   301,     0,   302,   303,   304,   305,   306,
     717,   307,   308,   309,     0,   310,   311,   312,   313,   314,
     315,     0,   316,   718,   317,   318,   319,   320,   321,  1001,
    1002,     0,  1003,     0,   325,   719,   720,   326,   721,   327,
     328,   329,   330,   331,   332,   333,     0,  1004,   722,   335,
     723,     0,   336,   337,   338,  1005,  1006,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,   350,  1007,
     724,  1008,   353,   354,   355,  1009,   356,   357,   725,   358,
    1010,  1011,   360,  1012,   362,   363,   364,     0,   365,     0,
       0,  1013,   367,   368,     0,     0,   369,   726,   727,   728,
    1014,   371,   372,   373,   374,   375,   376,   377,     0,   378,
    1015,   380,   381,   382,   383,   384,     0,   385,   386,   387,
     388,   389,   390,   391,  1016,   393,   394,   395,   396,     0,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       0,   407,   408,   729,   409,   410,  1017,   412,   413,   414,
     415,   416,   417,   418,   419,     0,   420,   421,   422,   423,
     424,  1018,   425,   426,   427,   428,   730,   429,  1019,     0,
     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
    1020,     0,   442,   443,     0,   444,   445,   446,   447,   448,
     449,     0,  1021,  1022,     0,     0,   452,  1023,   454,  1024,
    1025,   456,   457,   458,   459,   460,   461,     0,  1026,   462,
     463,   464,   465,   466,  1027,     0,   467,   468,   469,   470,
     471,   472,  1028,     0,   474,   731,   475,   476,   477,     0,
       0,   478,     0,     0,   479,   480,   481,   482,   483,   484,
    1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,   493,   494,
     495,     0,     0,     0,     0,     0,     0,     0,  1037,  1038,
     199,     0,     0,     0,     0,     0,     0,  1040,  2210,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,  3308,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0, -1368,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0, -1368,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   306,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316, -1368,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326, -1368,   327,   328,   329,   330,   331,   332,   333,     0,
     334, -1368,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351, -1368,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408, -1368,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,     0,     0,     0,     0,     0,     0,
       0,   199,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1116,   200,   201,   202,   203,   204,   205,   206,   207,
       0,   209,   210,   211,     0,     0,     0,     0,     0,     0,
       0,   212,   213,     0,   214,   215,     0,   216,   217,   218,
     219,   220,     0,   221,   222,     0,   223,   224,   225,   226,
     227,     0,     0,   228,   229,   230,   231,   232,     0,   233,
     234,   235,   236,   237,     0,   238,     0,   239,   240,   241,
     242,     0,   243,   244,     0,   245,   246,   247,   248,   249,
     250,     0,     0,   251,   252,     0,     0,     0,     0,     0,
       0,     0,   253,   254,   255,   256,   257,   258,   259,   260,
     261,     0,   262,     0,   263,   264,   265,   266,   267,     0,
     268,   269,   270,     0,     0,   271,   272,   273,   274,   275,
       0,   276,   277,   278,     0,   279,   280,     0,   281,   282,
     283,   284,   285,   286,   287,   288,   289,     0,   290,     0,
     291,   292,   293,     0,   294,     0,   295,     0,     0,     0,
     296,   297,   298,     0,   299,   300,     0,   301,     0,   302,
     303,   304,   305,   306,     0,   307,   308,   309,     0,   310,
     311,   312,   313,   314,   315,     0,   316,     0,   317,   318,
     319,   320,   321,   322,   323,     0,   324,     0,   325,     0,
       0,   326,     0,   327,   328,   329,   330,   331,   332,   333,
       0,   334,     0,   335,     0,     0,   336,   337,   338,     0,
       0,   339,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,   350,   351,     0,   352,   353,   354,   355,     0,
     356,   357,     0,   358,     0,   359,   360,   361,   362,   363,
     364,     0,   365,     0,     0,   366,   367,   368,     0,     0,
     369,     0,     0,     0,   370,   371,   372,   373,   374,   375,
     376,   377,     0,   378,   379,   380,   381,   382,   383,   384,
       0,   385,   386,   387,   388,   389,   390,   391,   392,   393,
     394,   395,   396,     0,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     0,   407,   408,     0,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,   419,     0,
     420,   421,   422,   423,   424,     0,   425,   426,   427,   428,
       0,   429,   430,     0,   431,   432,   433,   434,   435,   436,
     437,   438,   439,   440,   441,     0,   442,   443,     0,   444,
     445,   446,   447,   448,   449,     0,   450,   451,     0,     0,
     452,   453,   454,   455,     0,   456,   457,   458,   459,   460,
     461,     0,     0,   462,   463,   464,   465,   466,     0,     0,
     467,   468,   469,   470,   471,   472,   473,     0,   474,     0,
     475,   476,   477,     0,     0,   478,     0,     0,   479,   480,
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
     491,   492,   493,   494,   495,     0,     0,     0,     0,     0,
       0,     0,  1308,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  2623,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,   710,   216,   217,
     218,     0,  1309,   711,  1310,  1311,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,  1312,  1313,   232,     0,
     233,   234,   235,   236,     0,     0,   238,     0,   239,   240,
     241,   242,   712,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,   713,   251,   252,     0,     0,     0,   714,
       0,     0,     0,   253,   254,   255,   256,   257,   258,  1314,
    1315,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   995,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,     0,   286,   287,   288,     0,     0,   290,
       0,   291,  1316,   293,     0,   294,     0,   295,   715,     0,
     716,   296,   297,   298,     0,   299,     0,     0,   301,     0,
     302,   303,   304,   305,   306,   717,   307,   308,   309,  1841,
     310,   311,   312,   313,   314,   315,     0,   316,   718,  1842,
     318,   319,   320,   321,  1317,  1318,     0,  1319,     0,   325,
     719,   720,   326,   721,   327,   328,   329,   330,   331,   332,
     333,     0,     0,   722,   335,   723,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,  1320,   724,  1321,   353,   354,     0,
       0,   356,   357,   725,   358,     0,     0,   360,  1322,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,  1843,   726,   727,   728,     0,   371,   372,   373,   374,
     375,   376,   377,     0,   378,     0,   380,     0,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,  1323,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,   729,   409,
     410,     0,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,  1844,   427,
     428,   730,   429,  1325,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,     0,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,  1326,  1327,     0,
       0,   452,     0,   454,     0,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,     0,  1328,  1845,   474,
     731,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,     0,  1308,     0,     0,     0,     0,
       0,     0,     0,   493,   494,   495,   200,   201,   202,   203,
     204,   205,   206,   207,     0,   209,   210,   211,     0,     0,
       0,     0,     0,  1846,     0,   212,   213,     0,   214,   215,
     710,   216,   217,   218,     0,  1309,   711,  1310,  1311,     0,
     223,   224,   225,   226,   227,     0,     0,   228,   229,  1312,
    1313,   232,     0,   233,   234,   235,   236,     0,     0,   238,
       0,   239,   240,   241,   242,   712,   243,   244,     0,   245,
     246,   247,   248,   249,   250,     0,   713,   251,   252,     0,
       0,     0,   714,     0,     0,     0,   253,   254,   255,   256,
     257,   258,  1314,  1315,   261,     0,   262,     0,   263,   264,
     265,   266,   267,     0,   268,   269,   270,     0,     0,   271,
     272,   995,   274,   275,     0,   276,   277,   278,     0,   279,
     280,     0,   281,   282,   283,   284,     0,   286,   287,   288,
       0,     0,   290,     0,   291,  1316,   293,     0,   294,     0,
     295,   715,     0,   716,   296,   297,   298,     0,   299,     0,
       0,   301,     0,   302,   303,   304,   305,   306,   717,   307,
     308,   309,  1841,   310,   311,   312,   313,   314,   315,     0,
     316,   718,  1842,   318,   319,   320,   321,  1317,  1318,     0,
    1319,     0,   325,   719,   720,   326,   721,   327,   328,   329,
     330,   331,   332,   333,     0,     0,   722,   335,   723,     0,
     336,   337,   338,     0,     0,   339,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,   350,  1320,   724,  1321,
     353,   354,     0,     0,   356,   357,   725,   358,     0,     0,
     360,  1322,   362,   363,   364,     0,   365,     0,     0,   366,
     367,   368,     0,     0,  1843,   726,   727,   728,     0,   371,
     372,   373,   374,   375,   376,   377,     0,   378,     0,   380,
       0,   382,   383,   384,     0,   385,   386,   387,   388,   389,
     390,   391,  1323,   393,   394,   395,   396,     0,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     0,   407,
     408,   729,   409,   410,     0,   412,   413,   414,   415,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,     0,
     425,  1844,   427,   428,   730,   429,  1325,     0,   431,   432,
     433,   434,   435,   436,   437,   438,   439,   440,     0,     0,
     442,   443,     0,   444,   445,   446,   447,   448,   449,     0,
    1326,  1327,     0,     0,   452,     0,   454,     0,     0,   456,
     457,   458,   459,   460,   461,     0,     0,   462,   463,   464,
     465,   466,     0,     0,   467,   468,   469,   470,   471,     0,
    1328,  1845,   474,   731,   475,   476,   477,     0,     0,   478,
       0,     0,   479,   480,   481,   482,   483,     0,   709,   972,
     548,   973,   974,   975,   595,   976,   493,   494,   495,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,   977,  2674,     0,   212,   213,
       0,   214,   215,   710,   216,   217,   218,   219,   978,   711,
     979,   980,  2220,   223,   224,   225,   226,   227,   981,   982,
     228,   229,   983,   984,   232,     0,   233,   234,   235,   236,
     985,     0,   238,     0,   239,   240,   241,   242,   712,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,   713,
     251,   252,   986,   987,   988,   989,   990,   991,   992,   253,
     254,   255,   256,   257,   258,   993,   994,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   995,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   996,
     286,   287,   288,   997,   998,   290,     0,   291,   999,   293,
       0,   294,     0,   295,   715,  2221,   716,   296,   297,   298,
       0,   299,  1000,     0,   301,     0,   302,   303,   304,   305,
     306,   717,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,   718,   317,   318,   319,   320,   321,
    1001,  1002,     0,  1003,     0,   325,   719,   720,   326,   721,
     327,   328,   329,   330,   331,   332,   333,  2222,  1004,   722,
     335,   723,     0,   336,   337,   338,  1005,  1006,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
    1007,   724,  1008,   353,   354,   355,  1009,   356,   357,   725,
     358,  1010,  1011,   360,  1012,   362,   363,   364,     0,   365,
       0,     0,  1013,   367,   368,     0,     0,   369,   726,   727,
     728,  1014,   371,   372,   373,   374,   375,   376,   377,     0,
     378,  1015,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,  1016,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,   729,   409,   410,  1017,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,  1018,   425,   426,   427,   428,   730,   429,  1019,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,  1020,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,  1021,  1022,     0,  2223,   452,  1023,   454,
    1024,  1025,   456,   457,   458,   459,   460,   461,     0,  1026,
     462,   463,   464,   465,   466,  1027,     0,   467,   468,   469,
     470,   471,   472,  1028,     0,   474,   731,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,   493,
     494,   495,     0,     0,     0,     0,     0,     0,     0,  1037,
    1038,     0,     0,     0,     0,     0,     0,     0,  1040,   709,
     972,   548,   973,   974,   975,   595,   976,     0,     0,     0,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,   977,     0,     0,   212,
     213,     0,   214,   215,   710,   216,   217,   218,   219,   978,
     711,   979,   980,     0,   223,   224,   225,   226,   227,   981,
     982,   228,   229,   983,   984,   232,     0,   233,   234,   235,
     236,   985,     0,   238,     0,   239,   240,   241,   242,   712,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
     713,   251,   252,   986,   987,   988,   989,   990,   991,   992,
     253,   254,   255,   256,   257,   258,   993,   994,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   995,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     996,   286,   287,   288,   997,   998,   290,     0,   291,   999,
     293,     0,   294,     0,   295,   715,     0,   716,   296,   297,
     298,     0,   299,  1000,     0,   301,     0,   302,   303,   304,
     305,   306,   717,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,   718,   317,   318,   319,   320,
     321,  1001,  1002,     0,  1003,     0,   325,   719,   720,   326,
     721,   327,   328,   329,   330,   331,   332,   333,     0,  1004,
     722,   335,   723,     0,   336,   337,   338,  1005,  1006,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,  1007,   724,  1008,   353,   354,   355,  1009,   356,   357,
     725,   358,  1010,  1011,   360,  1012,   362,   363,   364,     0,
     365,     0,     0,  1013,   367,   368,     0,     0,   369,   726,
     727,   728,  1014,   371,   372,   373,   374,   375,   376,   377,
       0,   378,  1015,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,  1016,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,   729,   409,   410,  1017,   412,
     413,   414,   415,   416,   417,   418,   419,    37,   420,   421,
     422,   423,   424,  1018,   425,   426,   427,   428,   730,   429,
    1019,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,  1020,     0,   442,   443,    41,   444,   445,   446,
     447,   448,   449,     0,  1021,  1022,     0,     0,   452,  1023,
     454,  1024,  1025,   456,   457,   458,   459,   460,   461,     0,
    1026,   462,   463,   464,   465,   466,  1027,     0,   467,   468,
     469,   470,   471,   911,  1028,     0,   474,   731,   475,   476,
     477,     0,     0,   478,     0,    46,   479,   480,   481,   482,
     483,   484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,
     493,   494,   495,     0,     0,     0,     0,     0,     0,     0,
    1037,  1038,     0,     0,     0,     0,     0,     0,     0,  1040,
     709,   972,   548,   973,   974,   975,   595,   976,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,   977,     0,     0,
     212,   213,     0,   214,   215,   710,   216,   217,   218,   219,
     978,   711,   979,   980,     0,   223,   224,   225,   226,   227,
     981,   982,   228,   229,   983,   984,   232,     0,   233,   234,
     235,   236,   985,     0,   238,     0,   239,   240,   241,   242,
     712,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,   713,   251,   252,   986,   987,   988,   989,   990,   991,
     992,   253,   254,   255,   256,   257,   258,   993,   994,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   995,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   996,   286,   287,   288,   997,   998,   290,     0,   291,
     999,   293,     0,   294,     0,   295,   715,     0,   716,   296,
     297,   298,     0,   299,  1000,     0,   301,     0,   302,   303,
     304,   305,   306,   717,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,   718,   317,   318,   319,
     320,   321,  1001,  1002,     0,  1003,     0,   325,   719,   720,
     326,   721,   327,   328,   329,   330,   331,   332,   333,     0,
    1004,   722,   335,   723,     0,   336,   337,   338,  1005,  1006,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,  1007,   724,  1008,   353,   354,   355,  1009,   356,
     357,   725,   358,  1010,  1011,   360,  1012,   362,   363,   364,
       0,   365,     0,     0,  1013,   367,   368,     0,     0,   369,
     726,   727,   728,  1014,   371,   372,   373,   374,   375,   376,
     377,     0,   378,  1015,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,  1016,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,   729,   409,   410,  1017,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,  1018,   425,   426,   427,   428,   730,
     429,  1019,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,  1020,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,  1021,  1022,     0,     0,   452,
    1023,   454,  1024,  1025,   456,   457,   458,   459,   460,   461,
       0,  1026,   462,   463,   464,   465,   466,  1027,     0,   467,
     468,   469,   470,   471,   472,  1028,     0,   474,   731,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,
    1036,   493,   494,   495,     0,     0,     0,     0,     0,     0,
       0,  1037,  1038,     0,     0,     0,     0,     0,  1505,  2169,
    1040,   709,   972,   548,   973,   974,   975,   595,   976,     0,
       0,     0,   200,   201,   202,   203,   204,   205,   206,   207,
       0,   209,   210,   211,     0,     0,     0,     0,   977,     0,
       0,   212,   213,     0,   214,   215,   710,   216,   217,   218,
     219,   978,   711,   979,   980,     0,   223,   224,   225,   226,
     227,   981,   982,   228,   229,   983,   984,   232,     0,   233,
     234,   235,   236,   985,     0,   238,     0,   239,   240,   241,
     242,   712,   243,   244,     0,   245,   246,   247,   248,   249,
     250,     0,   713,   251,   252,   986,   987,   988,   989,   990,
     991,   992,   253,   254,   255,   256,   257,   258,   993,   994,
     261,     0,   262,     0,   263,   264,   265,   266,   267,     0,
     268,   269,   270,     0,     0,   271,   272,   995,   274,   275,
       0,   276,   277,   278,     0,   279,   280,     0,   281,   282,
     283,   284,   996,   286,   287,   288,   997,   998,   290,     0,
     291,   999,   293,     0,   294,     0,   295,   715,     0,   716,
     296,   297,   298,     0,   299,  1000,     0,   301,     0,   302,
     303,   304,   305,   306,   717,   307,   308,   309,     0,   310,
     311,   312,   313,   314,   315,     0,   316,   718,   317,   318,
     319,   320,   321,  1001,  1002,     0,  1003,     0,   325,   719,
     720,   326,   721,   327,   328,   329,   330,   331,   332,   333,
       0,  1004,   722,   335,   723,     0,   336,   337,   338,  1005,
    1006,   339,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,   350,  1007,   724,  1008,   353,   354,   355,  1009,
     356,   357,   725,   358,  1010,  1011,   360,  1012,   362,   363,
     364,     0,   365,     0,     0,  1013,   367,   368,     0,     0,
     369,   726,   727,   728,  1014,   371,   372,   373,   374,   375,
     376,   377,     0,   378,  1015,   380,   381,   382,   383,   384,
       0,   385,   386,   387,   388,   389,   390,   391,  1016,   393,
     394,   395,   396,     0,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     0,   407,   408,   729,   409,   410,
    1017,   412,   413,   414,   415,   416,   417,   418,   419,     0,
     420,   421,   422,   423,   424,  1018,   425,   426,   427,   428,
     730,   429,  1019,     0,   431,   432,   433,   434,   435,   436,
     437,   438,   439,   440,  1020,     0,   442,   443,     0,   444,
     445,   446,   447,   448,   449,     0,  1021,  1022,     0,     0,
     452,  1023,   454,  1024,  1025,   456,   457,   458,   459,   460,
     461,     0,  1026,   462,   463,   464,   465,   466,  1027,     0,
     467,   468,   469,   470,   471,   472,  1028,     0,   474,   731,
     475,   476,   477,     0,     0,   478,     0,     0,   479,   480,
     481,   482,   483,   484,  1029,  1030,  1031,  1032,  1033,  1034,
    1035,  1036,   493,   494,   495,     0,     0,     0,     0,     0,
       0,     0,  1037,  1038,  1039,     0,     0,     0,     0,     0,
       0,  1040,   709,   972,   548,   973,   974,   975,   595,   976,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,   977,
       0,     0,   212,   213,     0,   214,   215,   710,   216,   217,
     218,   219,   978,   711,   979,   980,     0,   223,   224,   225,
     226,   227,   981,   982,   228,   229,   983,   984,   232,     0,
     233,   234,   235,   236,   985,     0,   238,     0,   239,   240,
     241,   242,   712,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,   713,   251,   252,   986,   987,   988,   989,
     990,   991,   992,   253,   254,   255,   256,   257,   258,   993,
     994,   261,  1108,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   995,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   996,   286,   287,   288,   997,   998,   290,
       0,   291,   999,   293,     0,   294,     0,   295,   715,     0,
     716,   296,   297,   298,     0,   299,  1000,     0,   301,     0,
     302,   303,   304,   305,   306,   717,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,   718,   317,
     318,   319,   320,   321,  1001,  1002,     0,  1003,     0,   325,
     719,   720,   326,   721,   327,   328,   329,   330,   331,   332,
     333,     0,  1004,   722,   335,   723,     0,   336,   337,   338,
    1005,  1006,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,  1007,   724,  1008,   353,   354,   355,
    1009,   356,   357,   725,   358,  1010,  1011,   360,  1012,   362,
     363,   364,     0,   365,     0,     0,  1013,   367,   368,     0,
       0,   369,   726,   727,   728,  1014,   371,   372,   373,   374,
     375,   376,   377,     0,   378,  1015,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,  1016,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,   729,   409,
     410,  1017,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,  1018,   425,   426,   427,
     428,   730,   429,  1019,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,  1020,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,  1021,  1022,     0,
       0,   452,  1023,   454,  1024,  1025,   456,   457,   458,   459,
     460,   461,     0,  1026,   462,   463,   464,   465,   466,  1027,
       0,   467,   468,   469,   470,   471,   472,  1028,     0,   474,
     731,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,  1029,  1030,  1031,  1032,  1033,
    1034,  1035,  1036,   493,   494,   495,     0,     0,     0,     0,
       0,     0,     0,  1037,  1038,     0,     0,     0,     0,     0,
       0,     0,  1040,   709,   972,   548,   973,   974,   975,   595,
     976,     0,     0,     0,   200,   201,   202,   203,   204,   205,
     206,   207,  1745,   209,   210,   211,     0,     0,     0,     0,
     977,     0,     0,   212,   213,     0,   214,   215,   710,   216,
     217,   218,   219,   978,   711,   979,   980,     0,   223,   224,
     225,   226,   227,   981,   982,   228,   229,   983,   984,   232,
       0,   233,   234,   235,   236,   985,     0,   238,     0,   239,
     240,   241,   242,   712,   243,   244,     0,   245,   246,   247,
     248,   249,   250,     0,   713,   251,   252,   986,   987,   988,
     989,   990,   991,   992,   253,   254,   255,   256,   257,   258,
     993,   994,   261,     0,   262,     0,   263,   264,   265,   266,
     267,     0,   268,   269,   270,     0,     0,   271,   272,   995,
     274,   275,     0,   276,   277,   278,     0,   279,   280,     0,
     281,   282,   283,   284,   996,   286,   287,   288,   997,   998,
     290,     0,   291,   999,   293,     0,   294,     0,   295,   715,
       0,   716,   296,   297,   298,     0,   299,  1000,     0,   301,
       0,   302,   303,   304,   305,   306,   717,   307,   308,   309,
       0,   310,   311,   312,   313,   314,   315,     0,   316,   718,
     317,   318,   319,   320,   321,  1001,  1002,     0,  1003,     0,
     325,   719,   720,   326,   721,   327,   328,   329,   330,   331,
     332,   333,     0,  1004,   722,   335,   723,     0,   336,   337,
     338,  1005,  1006,   339,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,   350,  1007,   724,  1008,   353,   354,
     355,  1009,   356,   357,   725,   358,  1010,  1011,   360,  1012,
     362,   363,   364,     0,   365,     0,     0,  1013,   367,   368,
       0,     0,   369,   726,   727,   728,  1014,   371,   372,   373,
     374,   375,   376,   377,     0,   378,  1015,   380,   381,   382,
     383,   384,     0,   385,   386,   387,   388,   389,   390,   391,
    1016,   393,   394,   395,   396,     0,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     0,   407,   408,   729,
     409,   410,  1017,   412,   413,   414,   415,   416,   417,   418,
     419,     0,   420,   421,   422,   423,   424,  1018,   425,   426,
     427,   428,   730,   429,  1019,     0,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,  1020,     0,   442,   443,
       0,   444,   445,   446,   447,   448,   449,     0,  1021,  1022,
       0,     0,   452,  1023,   454,  1024,  1025,   456,   457,   458,
     459,   460,   461,     0,  1026,   462,   463,   464,   465,   466,
    1027,     0,   467,   468,   469,   470,   471,   472,  1028,     0,
     474,   731,   475,   476,   477,     0,     0,   478,     0,     0,
     479,   480,   481,   482,   483,   484,  1029,  1030,  1031,  1032,
    1033,  1034,  1035,  1036,   493,   494,   495,     0,     0,     0,
       0,     0,     0,     0,  1037,  1038,     0,     0,     0,     0,
       0,     0,     0,  1040,   709,   972,   548,   973,   974,   975,
     595,   976,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,   977,     0,     0,   212,   213,     0,   214,   215,   710,
     216,   217,   218,   219,   978,   711,   979,   980,     0,   223,
     224,   225,   226,   227,   981,   982,   228,   229,   983,   984,
     232,     0,   233,   234,   235,   236,   985,     0,   238,     0,
     239,   240,   241,   242,   712,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,   713,   251,   252,   986,   987,
     988,   989,   990,   991,   992,   253,   254,   255,   256,   257,
     258,   993,   994,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     995,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   996,   286,   287,   288,   997,
     998,   290,     0,   291,   999,   293,     0,   294,     0,   295,
     715,  2221,   716,   296,   297,   298,     0,   299,  1000,     0,
     301,     0,   302,   303,   304,   305,   306,   717,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
     718,   317,   318,   319,   320,   321,  1001,  1002,     0,  1003,
       0,   325,   719,   720,   326,   721,   327,   328,   329,   330,
     331,   332,   333,     0,  1004,   722,   335,   723,     0,   336,
     337,   338,  1005,  1006,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,  1007,   724,  1008,   353,
     354,   355,  1009,   356,   357,   725,   358,  1010,  1011,   360,
    1012,   362,   363,   364,     0,   365,     0,     0,  1013,   367,
     368,     0,     0,   369,   726,   727,   728,  1014,   371,   372,
     373,   374,   375,   376,   377,     0,   378,  1015,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,  1016,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
     729,   409,   410,  1017,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,  1018,   425,
     426,   427,   428,   730,   429,  1019,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,  1020,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,  1021,
    1022,     0,     0,   452,  1023,   454,  1024,  1025,   456,   457,
     458,   459,   460,   461,     0,  1026,   462,   463,   464,   465,
     466,  1027,     0,   467,   468,   469,   470,   471,   472,  1028,
       0,   474,   731,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,  1029,  1030,  1031,
    1032,  1033,  1034,  1035,  1036,   493,   494,   495,     0,     0,
       0,     0,     0,     0,     0,  1037,  1038,     0,     0,     0,
       0,     0,     0,     0,  1040,   709,   972,   548,   973,   974,
     975,   595,   976,     0,     0,     0,   200,   201,   202,   203,
     204,   205,   206,   207,     0,   209,   210,   211,     0,     0,
       0,     0,   977,     0,     0,   212,   213,     0,   214,   215,
     710,   216,   217,   218,   219,   978,   711,   979,   980,     0,
     223,   224,   225,   226,   227,   981,   982,   228,   229,   983,
     984,   232,     0,   233,   234,   235,   236,   985,     0,   238,
       0,   239,   240,   241,   242,   712,   243,   244,     0,   245,
     246,   247,   248,   249,   250,     0,   713,   251,   252,   986,
     987,   988,   989,   990,   991,   992,   253,   254,   255,   256,
     257,   258,   993,   994,   261,     0,   262,     0,   263,   264,
     265,   266,   267,     0,   268,   269,   270,     0,     0,   271,
     272,   995,   274,   275,     0,   276,   277,   278,     0,   279,
     280,     0,   281,   282,   283,   284,   996,   286,   287,   288,
     997,   998,   290,     0,   291,   999,   293,     0,   294,     0,
     295,   715,     0,   716,   296,   297,   298,     0,   299,  1000,
       0,   301,     0,   302,   303,   304,   305,   306,   717,   307,
     308,   309,     0,   310,   311,   312,   313,   314,   315,     0,
     316,   718,   317,   318,   319,   320,   321,  1001,  1002,     0,
    1003,     0,   325,   719,   720,   326,   721,   327,   328,   329,
     330,   331,   332,   333,     0,  1004,   722,   335,   723,     0,
     336,   337,   338,  1005,  1006,   339,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,   350,  1007,   724,  1008,
     353,   354,   355,  1009,   356,   357,   725,   358,  1010,  1011,
     360,  1012,   362,   363,   364,     0,   365,     0,     0,  1013,
     367,   368,     0,     0,   369,   726,   727,   728,  1014,   371,
     372,   373,   374,   375,   376,   377,     0,   378,  1015,   380,
     381,   382,   383,   384,     0,   385,   386,   387,   388,   389,
     390,   391,  1016,   393,   394,   395,   396,     0,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     0,   407,
     408,   729,   409,   410,  1017,   412,   413,   414,   415,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,  1018,
     425,   426,   427,   428,   730,   429,  1019,     0,   431,   432,
     433,   434,   435,   436,   437,   438,   439,   440,  1020,     0,
     442,   443,     0,   444,   445,   446,   447,   448,   449,     0,
    1021,  1022,     0,     0,   452,  1023,   454,  1024,  1025,   456,
     457,   458,   459,   460,   461,     0,  1026,   462,   463,   464,
     465,   466,  1027,     0,   467,   468,   469,   470,   471,   472,
    1028,  3341,   474,   731,   475,   476,   477,     0,     0,   478,
       0,     0,   479,   480,   481,   482,   483,   484,  1029,  1030,
    1031,  1032,  1033,  1034,  1035,  1036,   493,   494,   495,     0,
       0,     0,     0,     0,     0,     0,  1037,  1038,     0,     0,
       0,     0,     0,     0,     0,  1040,   709,   972,   548,   973,
     974,   975,   595,   976,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,   977,     0,     0,   212,   213,     0,   214,
     215,   710,   216,   217,   218,   219,   978,   711,   979,   980,
       0,   223,   224,   225,   226,   227,   981,   982,   228,   229,
     983,   984,   232,     0,   233,   234,   235,   236,   985,     0,
     238,     0,   239,   240,   241,   242,   712,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,   713,   251,   252,
     986,   987,   988,   989,   990,   991,   992,   253,   254,   255,
     256,   257,   258,   993,   994,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   995,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   996,   286,   287,
     288,   997,   998,   290,     0,   291,   999,   293,     0,   294,
       0,   295,   715,     0,   716,   296,   297,   298,     0,   299,
    1000,     0,   301,     0,   302,   303,   304,   305,   306,   717,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,   718,   317,   318,   319,   320,   321,  1001,  1002,
       0,  1003,     0,   325,   719,   720,   326,   721,   327,   328,
     329,   330,   331,   332,   333,     0,  1004,   722,   335,   723,
       0,   336,   337,   338,  1005,  1006,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,  1007,   724,
    1008,   353,   354,   355,  1009,   356,   357,   725,   358,  1010,
    1011,   360,  1012,   362,   363,   364,     0,   365,     0,     0,
    1013,   367,   368,     0,     0,   369,   726,   727,   728,  1014,
     371,   372,   373,   374,   375,   376,   377,     0,   378,  1015,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,  1016,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,   729,   409,   410,  1017,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
    1018,   425,   426,   427,   428,   730,   429,  1019,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,  1020,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,  1021,  1022,     0,     0,   452,  1023,   454,  1024,  1025,
     456,   457,   458,   459,   460,   461,     0,  1026,   462,   463,
     464,   465,   466,  1027,     0,   467,   468,   469,   470,   471,
     472,  1028,     0,   474,   731,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,  1029,
    1030,  1031,  1032,  1033,  1034,  1035,  1036,   493,   494,   495,
       0,     0,     0,     0,     0,     0,     0,  1037,  1038,     0,
       0,     0,     0,     0,     0,     0,  1040,   709,   972,   548,
     973,   974,   975,   595,   976,     0,     0,     0,   200,   201,
     202,   203,   204,   205,   206,   207,     0,   209,   210,   211,
       0,     0,     0,     0,   977,     0,     0,   212,   213,     0,
     214,   215,   710,   216,   217,   218,   219,   978,   711,   979,
     980,     0,   223,   224,   225,   226,   227,   981,   982,   228,
     229,   983,   984,   232,     0,   233,   234,   235,   236,   985,
       0,   238,     0,   239,   240,   241,   242,   712,   243,   244,
       0,   245,   246,   247,   248,   249,   250,     0,   713,   251,
    3351,   986,   987,   988,   989,   990,   991,   992,   253,   254,
     255,   256,   257,   258,   993,   994,   261,     0,   262,     0,
     263,   264,   265,   266,   267,     0,   268,   269,   270,     0,
       0,   271,   272,   995,   274,   275,     0,   276,   277,   278,
       0,   279,   280,     0,   281,   282,   283,   284,   996,   286,
     287,   288,   997,   998,   290,     0,   291,   999,   293,     0,
     294,     0,   295,   715,     0,   716,   296,   297,   298,     0,
     299,  1000,     0,   301,     0,   302,   303,   304,   305,   306,
     717,   307,   308,   309,     0,   310,   311,   312,   313,   314,
     315,     0,   316,   718,   317,   318,   319,   320,   321,  1001,
    1002,     0,  1003,     0,   325,   719,   720,   326,   721,   327,
     328,   329,   330,   331,   332,   333,     0,  1004,   722,   335,
     723,     0,   336,   337,   338,  1005,  1006,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,   350,  1007,
     724,  1008,   353,   354,   355,  1009,   356,   357,   725,   358,
    1010,  1011,   360,  1012,   362,   363,   364,     0,   365,     0,
       0,  1013,   367,   368,     0,     0,   369,   726,   727,   728,
    1014,   371,   372,   373,   374,   375,   376,   377,     0,   378,
    1015,   380,   381,   382,   383,   384,     0,   385,   386,   387,
     388,   389,   390,   391,  1016,   393,   394,   395,   396,     0,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       0,   407,   408,   729,   409,   410,  1017,   412,   413,   414,
     415,   416,   417,   418,   419,     0,   420,   421,   422,   423,
     424,  1018,   425,   426,   427,   428,   730,   429,  1019,     0,
     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
    1020,     0,   442,   443,     0,   444,   445,   446,   447,   448,
     449,     0,  1021,  1022,     0,     0,   452,  1023,   454,  1024,
    1025,   456,   457,   458,   459,   460,   461,     0,  1026,   462,
     463,   464,   465,   466,  1027,     0,   467,   468,   469,   470,
     471,   472,  1028,     0,   474,   731,   475,   476,   477,     0,
       0,   478,     0,     0,   479,   480,   481,   482,   483,   484,
    1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,   493,   494,
     495,     0,     0,     0,     0,     0,     0,     0,  1037,  1038,
       0,     0,     0,     0,     0,     0,     0,  1040,   709,   972,
     548,   973,   974,   975,   595,   976,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,   977,     0,     0,   212,   213,
       0,   214,   215,   710,   216,   217,   218,   219,   978,   711,
     979,   980,     0,   223,   224,   225,   226,   227,   981,   982,
     228,   229,   983,   984,   232,     0,   233,   234,   235,   236,
     985,     0,   238,     0,   239,   240,   241,   242,   712,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,   713,
     251,   252,   986,   987,   988,   989,   990,   991,   992,   253,
     254,   255,   256,   257,   258,   993,   994,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   995,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   996,
     286,   287,   288,   997,   998,   290,     0,   291,   999,   293,
       0,   294,     0,   295,   715,     0,   716,   296,   297,   298,
       0,   299,  1000,     0,   301,     0,   302,   303,   304,   305,
     306,   717,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,   718,   317,   318,   319,   320,   321,
    1001,  1002,     0,  1003,     0,   325,   719,   720,   326,   721,
     327,   328,   329,   330,   331,   332,   333,     0,  1004,   722,
     335,   723,     0,   336,   337,   338,  1005,  1006,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
    1007,   724,  1008,   353,   354,   355,  1009,   356,   357,   725,
     358,  1010,  1011,   360,  1012,   362,   363,   364,     0,   365,
       0,     0,  1013,   367,   368,     0,     0,   369,   726,   727,
     728,  1014,   371,   372,   373,   374,   375,   376,   377,     0,
     378,  1015,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,  1016,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,   729,   409,   410,  1017,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,  1018,   425,   426,   427,   428,   730,   429,  1019,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,  1020,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,  1021,  1022,     0,     0,   452,  1023,   454,
    1024,  1025,   456,   457,   458,   459,   460,   461,     0,  1026,
     462,   463,   464,   465,   466,  1027,     0,   467,   468,   469,
     470,   471,   472,  1028,     0,   474,   731,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
    3605,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,   493,
     494,   495,     0,     0,     0,     0,     0,     0,     0,  1037,
    1038,     0,     0,     0,     0,     0,     0,     0,  1040,   709,
     972,   548,   973,   974,   975,   595,   976,     0,     0,     0,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,   977,     0,     0,   212,
     213,     0,   214,   215,   710,   216,   217,   218,   219,   978,
     711,   979,   980,     0,   223,   224,   225,   226,   227,   981,
     982,   228,   229,   983,   984,   232,     0,   233,   234,   235,
     236,   985,     0,   238,     0,   239,   240,   241,   242,   712,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
     713,   251,   252,   986,   987,   988,   989,   990,   991,   992,
     253,   254,   255,   256,   257,   258,   993,   994,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   995,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     996,   286,   287,   288,   997,   998,   290,     0,   291,   999,
     293,     0,   294,     0,   295,   715,     0,   716,   296,   297,
     298,     0,   299,  1000,     0,   301,     0,   302,   303,   304,
     305,   306,   717,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,   718,   317,   318,   319,   320,
     321,  1001,  1002,     0,  1003,     0,   325,   719,   720,   326,
     721,   327,   328,   329,   330,   331,   332,   333,     0,  1004,
     722,   335,   723,     0,   336,   337,   338,  1005,  1006,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,  1007,   724,  1008,   353,  3614,   355,  1009,   356,   357,
     725,   358,  1010,  1011,   360,  1012,   362,   363,   364,     0,
     365,     0,     0,  1013,   367,   368,     0,     0,   369,   726,
     727,   728,  1014,   371,   372,   373,   374,   375,   376,   377,
       0,   378,  1015,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,  1016,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,   729,   409,   410,  1017,   412,
     413,   414,   415,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,  1018,   425,   426,   427,   428,   730,   429,
    1019,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,  1020,     0,   442,   443,     0,   444,   445,   446,
     447,   448,   449,     0,  1021,  1022,     0,     0,   452,  1023,
     454,  1024,  1025,   456,   457,   458,   459,   460,   461,     0,
    1026,   462,   463,   464,   465,   466,  1027,     0,   467,   468,
     469,   470,   471,   472,  1028,     0,   474,   731,   475,   476,
     477,     0,     0,   478,     0,     0,   479,   480,   481,   482,
     483,   484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,
     493,   494,   495,     0,     0,     0,     0,     0,     0,     0,
    1037,  1038,     0,     0,     0,     0,     0,     0,     0,  1040,
     709,   972,   548,   973,   974,   975,   595,   976,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,   977,     0,     0,
     212,   213,     0,   214,   215,   710,   216,   217,   218,  4087,
     978,   711,   979,   980,     0,   223,   224,   225,   226,   227,
     981,   982,   228,   229,   983,   984,   232,     0,   233,   234,
     235,   236,   985,     0,   238,     0,   239,   240,   241,   242,
     712,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,   713,   251,  4088,   986,   987,   988,   989,   990,   991,
     992,   253,   254,   255,   256,   257,   258,   993,   994,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   995,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   996,   286,   287,   288,   997,   998,   290,     0,   291,
     999,   293,     0,   294,     0,   295,   715,     0,   716,   296,
     297,   298,     0,   299,  1000,     0,   301,     0,   302,   303,
     304,   305,   306,   717,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,   718,   317,   318,   319,
     320,   321,  1001,  1002,     0,  1003,     0,   325,   719,   720,
     326,   721,   327,   328,   329,   330,   331,   332,   333,     0,
    1004,   722,   335,   723,     0,   336,   337,   338,  1005,  1006,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,  1007,   724,  1008,   353,   354,   355,  1009,   356,
     357,   725,   358,  1010,  1011,   360,  1012,   362,   363,   364,
       0,   365,     0,     0,  1013,   367,   368,     0,     0,   369,
     726,   727,   728,  1014,   371,   372,   373,   374,   375,   376,
     377,     0,   378,  1015,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,  1016,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,   729,   409,   410,  1017,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,  1018,   425,   426,   427,   428,   730,
     429,  1019,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,  1020,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,  1021,  1022,     0,     0,   452,
    1023,   454,  1024,  1025,   456,   457,   458,  4089,   460,   461,
       0,  1026,   462,   463,   464,   465,   466,  1027,     0,   467,
     468,   469,   470,   471,   472,  1028,     0,   474,   731,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,
    1036,   493,   494,   495,     0,     0,     0,     0,     0,     0,
       0,  1037,  1038,     0,     0,     0,     0,     0,     0,     0,
    1040,   709,   972,   548,   973,   974,   975,   595,   976,     0,
       0,     0,   200,   201,   202,   203,   204,   205,   206,   207,
       0,   209,   210,   211,     0,     0,     0,     0,   977,     0,
       0,   212,   213,     0,   214,   215,   710,   216,   217,   218,
     219,   978,   711,   979,   980,     0,   223,   224,   225,   226,
     227,   981,   982,   228,   229,   983,   984,   232,     0,   233,
     234,   235,   236,   985,     0,   238,     0,   239,   240,   241,
     242,   712,   243,   244,     0,   245,   246,   247,   248,   249,
     250,     0,   713,   251,  4088,   986,   987,   988,   989,   990,
     991,   992,   253,   254,   255,   256,   257,   258,   993,   994,
     261,     0,   262,     0,   263,   264,   265,   266,   267,     0,
     268,   269,   270,     0,     0,   271,   272,   995,   274,   275,
       0,   276,   277,   278,     0,   279,   280,     0,   281,   282,
     283,   284,   996,   286,   287,   288,   997,   998,   290,     0,
     291,   999,   293,     0,   294,     0,   295,   715,     0,   716,
     296,   297,   298,     0,   299,  1000,     0,   301,     0,   302,
     303,   304,   305,   306,   717,   307,   308,   309,     0,   310,
     311,   312,   313,   314,   315,     0,   316,   718,   317,   318,
     319,   320,   321,  1001,  1002,     0,  1003,     0,   325,   719,
     720,   326,   721,   327,   328,   329,   330,   331,   332,   333,
       0,  1004,   722,   335,   723,     0,   336,   337,   338,  1005,
    1006,   339,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,   350,  1007,   724,  1008,   353,   354,   355,  1009,
     356,   357,   725,   358,  1010,  1011,   360,  1012,   362,   363,
     364,     0,   365,     0,     0,  1013,   367,   368,     0,     0,
     369,   726,   727,   728,  1014,   371,   372,   373,   374,   375,
     376,   377,     0,   378,  1015,   380,   381,   382,   383,   384,
       0,   385,   386,   387,   388,   389,   390,   391,  1016,   393,
     394,   395,   396,     0,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     0,   407,   408,   729,   409,   410,
    1017,   412,   413,   414,   415,   416,   417,   418,   419,     0,
     420,   421,   422,   423,   424,  1018,   425,   426,   427,   428,
     730,   429,  1019,     0,   431,   432,   433,   434,   435,   436,
     437,   438,   439,   440,  1020,     0,   442,   443,     0,   444,
     445,   446,   447,   448,   449,     0,  1021,  1022,     0,     0,
     452,  1023,   454,  1024,  1025,   456,   457,   458,  4089,   460,
     461,     0,  1026,   462,   463,   464,   465,   466,  1027,     0,
     467,   468,   469,   470,   471,   472,  1028,     0,   474,   731,
     475,   476,   477,     0,     0,   478,     0,     0,   479,   480,
     481,   482,   483,   484,  1029,  1030,  1031,  1032,  1033,  1034,
    1035,  1036,   493,   494,   495,     0,     0,     0,     0,     0,
       0,     0,  1037,  1038,     0,     0,     0,     0,     0,     0,
       0,  1040,   709,   972,   548,   973,   974,   975,   595,   976,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,   977,
       0,     0,   212,   213,     0,   214,   215,   710,   216,   217,
     218,   219,   978,   711,   979,   980,     0,   223,   224,   225,
     226,   227,   981,   982,   228,   229,   983,   984,   232,     0,
     233,   234,   235,   236,   985,     0,   238,     0,   239,   240,
     241,   242,   712,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,   713,   251,   252,   986,   987,   988,   989,
     990,   991,   992,   253,   254,   255,   256,   257,   258,   993,
     994,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   995,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   996,   286,   287,   288,   997,   998,   290,
       0,   291,   999,   293,     0,   294,     0,   295,   715,     0,
     716,   296,   297,   298,     0,   299,  1000,     0,   301,     0,
     302,   303,   304,   305,   306,   717,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,   718,   317,
     318,   319,   320,   321,  1001,  1002,     0,  1003,     0,   325,
     719,   720,   326,   721,   327,   328,   329,   330,   331,   332,
     333,     0,  1004,   722,   335,   723,     0,   336,   337,   338,
    1005,  1006,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,  1007,   724,  1008,   353,   354,   355,
       0,   356,   357,   725,   358,  1010,  1011,   360,  1012,   362,
     363,   364,     0,   365,     0,     0,  1013,   367,   368,     0,
       0,   369,   726,   727,   728,  1014,   371,   372,   373,   374,
     375,   376,   377,     0,   378,  1015,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,  1016,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,   729,   409,
     410,  1017,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,  1018,   425,   426,   427,
     428,   730,   429,  1019,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,  1020,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,  1021,  1022,     0,
       0,   452,  1023,   454,  1024,  1025,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,  1027,
       0,   467,   468,   469,   470,   471,   472,  1028,     0,   474,
     731,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,  1029,  1030,  1031,  1032,  1033,
    1034,  1035,  1036,   493,   494,   495,     0,     0,     0,     0,
       0,     0,     0,  2203,  2204,     0,     0,     0,     0,     0,
       0,     0,  1040,   709,   972,   548,   973,   974,   975,   595,
     976,     0,     0,     0,   200,   201,   202,   203,   204,   205,
     206,   207,     0,   209,   210,   211,     0,     0,     0,     0,
     977,     0,     0,   212,   213,     0,   214,   215,   710,   216,
     217,   218, -2120,   978,   711,   979,   980,     0,   223,   224,
     225,   226,   227,   981,   982,   228,   229,   983,   984,   232,
       0,   233,   234,   235,   236,   985,     0,   238,     0,   239,
     240,   241,   242,   712,   243,   244,     0,   245,   246,   247,
     248,   249,   250,     0,   713,   251,  4088,   986,   987,   988,
     989,   990,   991,   992,   253,   254,   255,   256,   257,   258,
     993,   994,   261,     0,   262,     0,   263,   264,   265,   266,
     267,     0,   268,   269,   270,     0,     0,   271,   272,   995,
     274,   275,     0,   276,   277,   278,     0,   279,   280,     0,
     281,   282,   283,   284,   996,   286,   287,   288,   997,   998,
     290,     0,   291,   999,   293,     0,   294,     0,   295,   715,
       0,   716,   296,   297,   298,     0,   299,  1000,     0,   301,
       0,   302,   303,   304,   305,   306,     0,   307,   308,   309,
       0,   310,   311,   312,   313,   314,   315,     0,   316,   718,
     317,   318,   319,   320,   321,  1001,  1002,     0,  1003,     0,
     325,   719,   720,   326,   721,   327,   328,   329,   330,   331,
     332,   333,     0,  1004,   722,   335,     0,     0,   336,   337,
     338,  1005,  1006,   339,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,   350,  1007,   724,  1008,   353,   354,
     355,     0,   356,   357,   725,   358,  1010,  1011,   360,  1012,
     362,   363,   364,     0,   365,     0,     0,  1013,   367,   368,
       0,     0,   369,   726,   727,   728,  1014,   371,   372,   373,
     374,   375,   376,   377,     0,   378,  1015,   380,   381,   382,
     383,   384,     0,   385,   386,   387,   388,   389,   390,   391,
    1016,   393,   394,   395,   396,     0,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     0,   407,   408,   729,
     409,   410,  1017,   412,   413,   414,   415,   416,   417,   418,
     419,     0,   420,   421,   422,   423,   424,  1018,   425,   426,
     427,   428,     0,   429,  1019,     0,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,  1020,     0,   442,   443,
       0,   444,   445,   446,   447,   448,   449,     0,  1021,  1022,
       0,     0,   452,  1023,   454,  1024,  1025,   456,   457,   458,
    4089,   460,   461,     0,  1026,   462,   463,   464,   465,   466,
    1027,     0,   467,   468,   469,   470,   471,   472,  1028,     0,
     474,   731,   475,   476,   477,     0,     0,   478,     0,     0,
     479,   480,   481,   482,   483,   484,  1029,  1030,  1031,  1032,
    1033,  1034,  1035,  1036,   493,   494,   495,     0,     0,     0,
       0,     0,     0,     0,  1037,  1038,     0,     0,   709,   972,
     548,   973,   974,  1040,   595,   976,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,   977,     0,     0,   212,   213,
       0,   214,   215,   710,   216,   217,   218,   219,   978,   711,
     979,   980,     0,   223,   224,   225,   226,   227,   981,   982,
     228,   229,   983,   984,   232,     0,   233,   234,   235,   236,
     985,     0,   238,     0,   239,   240,   241,   242,   712,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,   713,
     251,   252,   986,   987,   988,   989,   990,   991,   992,   253,
     254,   255,   256,   257,   258,   993,   994,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   995,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   996,
     286,   287,   288,   997,   998,   290,     0,   291,   999,   293,
       0,   294,     0,   295,   715,     0,   716,   296,   297,   298,
       0,   299,  1000,     0,   301,     0,   302,   303,   304,   305,
     306,   717,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,   718,   317,   318,   319,   320,   321,
    1001,  1002,     0,  1003,     0,   325,   719,   720,   326,   721,
     327,   328,   329,   330,   331,   332,   333,     0,  1004,   722,
     335,   723,     0,   336,   337,   338,  1005,  1006,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
    1007,   724,  1008,   353,   354,   355,     0,   356,   357,   725,
     358,  1010,  1011,   360,  1012,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,   726,   727,
     728,  1014,   371,   372,   373,   374,   375,   376,   377,     0,
     378,  1015,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,  1016,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,   729,   409,   410,  1017,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,  1018,   425,   426,   427,   428,   730,   429,  1019,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,  1020,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,  1021,  1022,     0,     0,   452,  1023,   454,
    1024,  1025,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,  1027,     0,   467,   468,   469,
     470,   471,   472,  1028,     0,   474,   731,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,   493,
     494,   495,     0,     0,     0,     0,     0,     0,   709,   972,
     548,   973,   974,     0,   595,   976,     0,     0,  1040,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,   977,     0,     0,   212,   213,
       0,   214,   215,   710,   216,   217,   218,   219,   978,   711,
     979,   980,     0,  3264,   224,   225,   226,   227,   981,   982,
     228,   229,   983,   984,   232,     0,   233,   234,   235,   236,
     985,     0,   238,     0,   239,   240,   241,   242,   712,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,   713,
     251,   252,   986,   987,   988,   989,   990,   991,   992,   253,
     254,   255,   256,   257,   258,   993,   994,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   995,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   996,
     286,   287,   288,   997,   998,   290,     0,   291,   999,   293,
       0,   294,     0,   295,   715,     0,   716,   296,   297,   298,
       0,   299,  1000,     0,   301,     0,   302,   303,   304,   305,
     306,   717,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,   718,   317,   318,   319,   320,   321,
    1001,  1002,     0,  1003,     0,   325,   719,   720,   326,   721,
     327,   328,   329,   330,   331,   332,   333,     0,  1004,   722,
     335,   723,     0,   336,   337,   338,  1005,  1006,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
    1007,   724,  1008,   353,   354,   355,     0,   356,   357,   725,
     358,  1010,  1011,   360,  1012,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,   726,   727,
     728,  1014,   371,   372,   373,   374,   375,   376,   377,     0,
     378,  1015,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,  1016,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,   729,   409,   410,  1017,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,  1018,   425,   426,   427,   428,   730,   429,  1019,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,  1020,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,  1021,  1022,     0,     0,   452,  1023,   454,
    1024,  1025,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,  1027,     0,   467,   468,   469,
     470,   471,   472,  1028,     0,   474,   731,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,   493,
     494,   495,     0,     0,     0,     0,     0,     0,   709,   972,
     548,   973,   974,   975,   595,   976,     0,     0,  1040,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,   977,     0,     0,   212,   213,
       0,   214,   215,   710,   216,   217,   218,     0,   978,   711,
     979,   980,     0,   223,   224,   225,   226,   227,   981,   982,
     228,   229,   983,   984,   232,     0,   233,   234,   235,   236,
     985,     0,   238,     0,   239,   240,   241,   242,   712,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,   713,
     251,   252,   986,   987,   988,   989,   990,   991,   992,   253,
     254,   255,   256,   257,   258,   993,   994,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   995,   274,   275,     0,   276,   277,
     278,     0,   279,     0,     0,   281,   282,   283,   284,   996,
     286,   287,   288,   997,   998,   290,     0,   291,   999,   293,
       0,   294,     0,   295,   715,     0,   716,   296,   297,   298,
       0,   299,  1000,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,   718,   317,   318,   319,   320,   321,
    1001,  1002,     0,  1003,     0,   325,   719,   720,   326,   721,
     327,   328,   329,   330,   331,   332,   333,     0,  1004,   722,
     335,     0,     0,   336,   337,   338,  1005,  1006,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
    1007,   724,  1008,   353,   354,   355,     0,   356,   357,   725,
     358,  1010,  1011,   360,  1012,   362,   363,   364,     0,   365,
       0,     0,  1013,   367,   368,     0,     0,   369,   726,   727,
     728,  1014,   371,   372,   373,   374,   375,   376,   377,     0,
     378,  1015,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,  1016,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,   729,   409,   410,  1017,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,  1018,   425,   426,   427,   428,     0,   429,  1019,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,  1020,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,  1021,  1022,     0,     0,   452,  1023,   454,
    1024,  1025,   456,   457,   458,   459,   460,   461,     0,  1026,
     462,   463,   464,   465,   466,  1027,     0,   467,   468,   469,
     470,   471,   472,  1028,     0,   474,   731,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,   493,
     494,   495,     0,     0,     0,     0,     0,     0,     0,  1037,
    1038,     0,     0,     0,     0,     0,     0,     0,  1040,   709,
     972,   548,   973,   974,   975,   595,   976,     0,     0,     0,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,   977,     0,     0,   212,
     213,     0,   214,   215,   710,   216,   217,   218,     0,   978,
     711,   979,   980,     0,   223,   224,   225,   226,   227,   981,
     982,   228,   229,   983,   984,   232,     0,   233,   234,   235,
     236,   985,     0,   238,     0,   239,   240,   241,   242,   712,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
     713,   251,   252,   986,   987,   988,   989,   990,   991,   992,
     253,   254,   255,   256,   257,   258,   993,   994,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   995,   274,   275,     0,   276,
     277,   278,     0,   279,     0,     0,   281,   282,   283,   284,
     996,   286,   287,   288,   997,   998,   290,     0,   291,   999,
     293,     0,   294,     0,   295,   715,     0,   716,   296,   297,
     298,     0,   299,  1000,     0,   301,     0,   302,   303,   304,
     305,   306,     0,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,   718,   317,   318,   319,   320,
     321,  1001,  1002,     0,  1003,     0,   325,   719,   720,   326,
     721,   327,   328,   329,   330,   331,   332,   333,     0,  1004,
     722,   335,     0,     0,   336,   337,   338,  1005,  1006,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,  1007,   724,  1008,   353,   354,   355,     0,   356,   357,
     725,   358,  1010,  1011,   360,  1012,   362,   363,   364,     0,
     365,     0,     0,  1013,   367,   368,     0,     0,   369,   726,
     727,   728,  1014,   371,   372,   373,   374,   375,   376,   377,
       0,   378,  1015,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,  1016,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,   729,   409,   410,  1017,   412,
     413,   414,   415,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,  1018,   425,   426,   427,   428,     0,   429,
    1019,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,  1020,     0,   442,   443,     0,   444,   445,   446,
     447,   448,   449,     0,  1021,  1022,     0,     0,   452,  1023,
     454,  1024,  1025,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,  1027,     0,   467,   468,
     469,   470,   471,   472,  1028,     0,   474,   731,   475,   476,
     477,     0,     0,   478,     0,     0,   479,   480,   481,   482,
     483,   484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,
     493,   494,   495,     0,     0,     0,     0,     0,     0,   709,
    2203,  2204,     0,     0,     0,     0,     0,     0,     0,  1040,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,     0,     0,     0,   212,
     213,     0,   214,   215,   710,   216,   217,   218,   219,   220,
     711,   221,   222,     0,   223,   224,   225,   226,   227,     0,
     982,   228,   229,   230,   231,   232,     0,   233,   234,   235,
     236,   985,     0,   238,     0,   239,   240,   241,   242,   712,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
     713,   251,   252,   986,   987,   988,   989,   990,   991,   992,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   273,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     285,   286,   287,   288,   997,     0,   290,     0,   291,   292,
     293,     0,   294,     0,   295,   715,     0,   716,   296,   297,
     298,     0,   299,  1000,     0,   301,     0,   302,   303,   304,
     305,   306,   717,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,   718,   317,   318,   319,   320,
     321,   322,   323,     0,   324,     0,   325,   719,   720,   326,
     721,   327,   328,   329,   330,   331,   332,   333,     0,  1004,
     722,   335,   723,     0,   336,   337,   338,  1005,  1006,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   724,   352,   353,   354,   355,     0,   356,   357,
     725,   358,     0,  1011,   360,   361,   362,   363,   364,     0,
     365,     0,   674,   366,   367,   368,     0,     0,   369,   726,
     727,   728,  1014,   371,   372,   373,   374,   375,   376,   377,
       0,   378,  1015,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,   729,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    37,   420,   421,
     422,   423,   424,  1018,   425,   426,   427,   428,   730,   429,
     430,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,  1020,     0,   442,   443,    41,   444,   445,   446,
     447,   448,   449,     0,   450,   451,     0,     0,   452,  1023,
     454,  1024,     0,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,  1027,     0,   467,   468,
     469,   470,   471,   911,   473,     0,   474,   731,   475,   476,
     477,     0,     0,   478,     0,    46,   479,   480,   481,   482,
     483,   484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,
     493,   494,   495,     0,     0,     0,     0,     0,     0,   709,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2856,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,     0,     0,     0,   212,
     213,     0,   214,   215,   710,   216,   217,   218,   219,   220,
     711,   221,   222,     0,   223,   224,   225,   226,   227,     0,
     982,   228,   229,   230,   231,   232,     0,   233,   234,   235,
     236,   985,     0,   238,     0,   239,   240,   241,   242,   712,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
     713,   251,   252,   986,   987,   988,   989,   990,   991,   992,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   273,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     285,   286,   287,   288,   997,     0,   290,     0,   291,   292,
     293,     0,   294,     0,   295,   715,     0,   716,   296,   297,
     298,     0,   299,  1000,     0,   301,     0,   302,   303,   304,
     305,   306,   717,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,   718,   317,   318,   319,   320,
     321,   322,   323,     0,   324,     0,   325,   719,   720,   326,
     721,   327,   328,   329,   330,   331,   332,   333,     0,  1004,
     722,   335,   723,     0,   336,   337,   338,  1005,  1006,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   724,   352,   353,   354,   355,     0,   356,   357,
     725,   358,     0,  1011,   360,   361,   362,   363,   364,     0,
     365,     0,   674,   366,   367,   368,     0,     0,   369,   726,
     727,   728,  1014,   371,   372,   373,   374,   375,   376,   377,
       0,   378,  1015,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,   729,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,  1018,   425,   426,   427,   428,   730,   429,
     430,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,  1020,     0,   442,   443,     0,   444,   445,   446,
     447,   448,   449,     0,   450,   451,     0,     0,   452,  1023,
     454,  1024,     0,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,  1027,     0,   467,   468,
     469,   470,   471,   472,   473,     0,   474,   731,   475,   476,
     477,     0,     0,   478,     0,     0,   479,   480,   481,   482,
     483,   484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,
     493,   494,   495,     0,     0,     0,     0,     0,     0,   709,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2856,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,     0,     0,     0,   212,
     213,     0,   214,   215,   710,   216,   217,   218,   219,   220,
     711,   221,   222,     0,   223,   224,   225,   226,   227,     0,
     982,   228,   229,   230,   231,   232,     0,   233,   234,   235,
     236,   985,     0,   238,     0,   239,   240,   241,   242,   712,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
     713,   251,   252,   986,   987,   988,   989,   990,   991,   992,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   273,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     285,   286,   287,   288,   997,     0,   290,     0,   291,   292,
     293,     0,   294,     0,   295,   715,     0,   716,   296,   297,
     298,     0,   299,  1000,     0,   301,     0,   302,   303,   304,
     305,   306,   717,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,   718,   317,   318,   319,   320,
     321,   322,   323,     0,   324,     0,   325,   719,   720,   326,
     721,   327,   328,   329,   330,   331,   332,   333,     0,  1004,
     722,   335,   723,     0,   336,   337,   338,  1005,  1006,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   724,   352,   353,   354,   355,     0,   356,   357,
     725,   358,     0,  1011,   360,   361,   362,   363,   364,     0,
     365,     0,     0,   366,   367,   368,     0,     0,   369,   726,
     727,   728,  1014,   371,   372,   373,   374,   375,   376,   377,
       0,   378,  1015,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,   729,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,  1018,   425,   426,   427,   428,   730,   429,
     430,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,  1020,     0,   442,   443,     0,   444,   445,   446,
     447,   448,   449,     0,   450,   451,     0,     0,   452,  1023,
     454,  1024,     0,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,  1027,     0,   467,   468,
     469,   470,   471,   472,   473,     0,   474,   731,   475,   476,
     477,     0,     0,   478,     0,     0,   479,   480,   481,   482,
     483,   484,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,
     493,   494,   495,     0,     0,     0,     0,     0,     0,   709,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3371,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,     0,     0,     0,   212,
     213,     0,   214,   215,   710,   216,   217,   218,   219,   220,
     711,   221,   222,     0,   223,   224,   225,   226,   227,     0,
       0,   228,   229,   230,   231,   232,     0,   233,   234,   235,
     236,   237,     0,   238,     0,   239,   240,   241,   242,   712,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
     713,   251,   252,     0,     0,     0,   714,     0,     0,     0,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   273,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     285,   286,   287,   288,   289,     0,   290,     0,   291,   292,
     293,     0,   294,     0,   295,   715,     0,   716,   296,   297,
     298,     0,   299,   300,     0,   301,     0,   302,   303,   304,
     305,   306,   717,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,   718,   317,   318,   319,   320,
     321,   322,   323,     0,   324,     0,   325,   719,   720,   326,
     721,   327,   328,   329,   330,   331,   332,   333,     0,   334,
     722,   335,   723,     0,   336,   337,   338,     0,     0,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,   351,   724,   352,   353,   354,   355,     0,   356,   357,
     725,   358,     0,   359,   360,   361,   362,   363,   364,     0,
     365,     0,     0,   366,   367,   368,     0,     0,   369,   726,
     727,   728,   370,   371,   372,   373,   374,   375,   376,   377,
       0,   378,   379,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,   729,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,     0,   425,   426,   427,   428,   730,   429,
     430,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,   441,     0,   442,   443,     0,   444,   445,   446,
     447,   448,   449,     0,   450,   451,     0,     0,   452,   453,
     454,   455,     0,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,     0,     0,   467,   468,
     469,   470,   471,   472,   473,     0,   474,   731,   475,   476,
     477,     0,     0,   478,     0,     0,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,     0,     0,     0,     0,     0,     0,   199,
    1213,   548,     0,     0,     0,   595,     0,     0,     0,  3873,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,     0,     0,     0,   212,
     213,     0,   214,   215,     0,   216,   217,   218,   219,   220,
       0,   221,   222,     0,   223,   224,   225,   226,   227,     0,
       0,   228,   229,   230,   231,   232,     0,   233,   234,   235,
     236,   237,     0,   238,     0,   239,   240,   241,   242,     0,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
       0,   251,   252,     0,     0,     0,     0,     0,     0,     0,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   273,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     285,   286,   287,   288,   289,  1440,   290,     0,   291,   292,
     293,     0,   294,     0,   295,     0,     0,     0,   296,   297,
     298,     0,   299,   300,     0,   301,     0,   302,   303,   304,
     305,   306,     0,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,     0,   317,   318,   319,   320,
     321,   322,   323,     0,   324,     0,   325,     0,     0,   326,
       0,   327,   328,   329,   330,   331,   332,   333,     0,   334,
       0,   335,     0,     0,   336,   337,   338,     0,     0,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,   351,     0,   352,   353,   354,   355,     0,   356,   357,
       0,   358,     0,   359,   360,   361,   362,   363,   364,     0,
     365,  1441,     0,   366,   367,   368,     0,     0,   369,     0,
       0,     0,   370,   371,   372,   373,   374,   375,   376,   377,
       0,   378,   379,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,     0,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,     0,   425,   426,   427,   428,     0,   429,
     430,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,   441,     0,   442,   443,     0,   444,   445,   446,
     447,   448,   449,     0,   450,   451,     0,     0,   452,   453,
     454,   455,  1442,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,     0,     0,   467,   468,
     469,   470,   471,   472,   473,     0,   474,     0,   475,   476,
     477,     0,     0,   478,     0,     0,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,     0,     0,     0,     0,     0,     0,   199,
     607,  1214,  3476,     0,     0,     0,     0,     0,     0,  3477,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     3,     4,     0,     0,     0,     0,     0,   212,
     213,     0,   214,   215,     0,   216,   217,   218,   219,   220,
       0,   221,   222,     0,   223,   224,   225,   226,   227,     0,
       0,   228,   229,   230,   231,   232,     0,   233,   234,   235,
     236,   237,     0,   238,     0,   239,   240,   241,   242,     0,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
       0,   251,   252,     0,     0,     0,     0,     0,     0,     0,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   273,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     285,   286,   287,   288,   289,     0,   290,     0,   291,   292,
     293,     0,   294,     0,   295,     0,     0,     0,   296,   297,
     298,     0,   299,   300,     0,   301,     0,   302,   303,   304,
     305,   306,     0,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,     0,   317,   318,   319,   320,
     321,   322,   323,     0,   324,     0,   325,     0,     0,   326,
       0,   327,   328,   329,   330,   331,   332,   333,     0,   334,
       0,   335,     0,     0,   336,   337,   338,     0,     0,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,   351,     0,   352,   353,   354,   355,     0,   356,   357,
       0,   358,     0,   359,   360,   361,   362,   363,   364,     0,
     365,     0,     0,   366,   367,   368,     0,     0,   369,     0,
       0,     0,   370,   371,   372,   373,   374,   375,   376,   377,
       0,   378,   379,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,     0,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    37,   420,   421,
     422,   423,   424,     0,   425,   426,   427,   428,     0,   429,
     430,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,   441,     0,   442,   443,    41,   444,   445,   446,
     447,   448,   449,     0,   450,   451,     0,     0,   452,   453,
     454,   455,     0,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,     0,     0,   467,   468,
     469,   470,   471,   911,   473,     0,   474,   912,   475,   476,
     477,     0,     0,   478,     0,    46,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,     0,     0,     0,     0,     0,     0,   199,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    47,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,     0,     0,     0,   212,
     213,     0,   214,   215,     0,   216,   217,   218,   219,   220,
       0,   221,   222,     0,   223,   224,   225,   226,   227,     0,
       0,   228,   229,   230,   231,   232,     0,   233,   234,   235,
     236,   237,     0,   238,     0,   239,   240,   241,   242,     0,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
       0,   251,   252,     0,     0,     0,     0,     0,     0,     0,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   273,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     285,   286,   287,   288,   289,     0,   290,     0,   291,   292,
     293,     0,   294,     0,   295,     0,     0,     0,   296,   297,
     298,     0,   299,   300,     0,   301,     0,   302,   303,   304,
     305,   306,     0,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,     0,   317,   318,   319,   320,
     321,   322,   323,     0,   324,     0,   325,     0,     0,   326,
       0,   327,   328,   329,   330,   331,   332,   333,     0,   334,
       0,   335,     0,     0,   336,   337,   338,     0,     0,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,   351,     0,   352,   353,   354,   355,     0,   356,   357,
       0,   358,     0,   359,   360,   361,   362,   363,   364,     0,
     365,     0,     0,   366,   367,   368,     0,     0,   369,     0,
       0,     0,   370,   371,   372,   373,   374,   375,   376,   377,
       0,   378,   379,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,     0,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,    37,   420,   421,
     422,   423,   424,     0,   425,   426,   427,   428,     0,   429,
     430,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,   441,     0,   442,   443,    41,   444,   445,   446,
     447,   448,   449,     0,   450,   451,     0,     0,   452,   453,
     454,   455,     0,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,     0,     0,   467,   468,
     469,   470,   471,   911,   473,     0,   474,     0,   475,   476,
     477,     0,     0,   478,     0,    46,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,     0,     0,     0,     0,     0,     0,   199,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    47,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,     0,     0,     0,   212,
     213,     0,   214,   215,     0,   216,   217,   218,   219,   220,
       0,   221,   222,     0,   223,   224,   225,   226,   227,     0,
       0,   228,   229,   230,   231,   232,     0,   233,   234,   235,
     236,   237,     0,   238,     0,   239,   240,   241,   242,     0,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
       0,   251,   252,     0,     0,     0,     0,     0,     0,     0,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   273,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     285,   286,   287,   288,   289,     0,   290,     0,   291,   292,
     293,     0,   294,     0,   295,     0,     0,     0,   296,   297,
     298,     0,   299,   300,     0,   301,     0,   302,   303,   304,
     305,   306,     0,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,     0,   317,   318,   319,   320,
     321,   322,   323,     0,   324,     0,   325,     0,     0,   326,
       0,   327,   328,   329,   330,   331,   332,   333,     0,   334,
       0,   335,     0,     0,   336,   337,   338,     0,     0,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,   351,     0,   352,   353,   354,   355,     0,   356,   357,
       0,   358,     0,   359,   360,   361,   362,   363,   364,     0,
     365,     0,     0,   366,   367,   368,     0,     0,   369,     0,
       0,     0,   370,   371,   372,   373,   374,   375,   376,   377,
       0,   378,   379,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,     0,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,     0,   425,   426,   427,   428,     0,   429,
     430,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,   441,     0,   442,   443,     0,   444,   445,   446,
     447,   448,   449,     0,   450,   451,     0,     0,   452,   453,
     454,   455,     0,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,     0,     0,   467,   468,
     469,   470,   471,   472,   473,     0,   474,     0,   475,   476,
     477,     0,     0,   478,     0,     0,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,     0,     0,     0,     0,     0,     0,   199,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1092,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,     0,     0,     0,   212,
     213,     0,   214,   215,     0,   216,   217,   218,   219,   220,
       0,   221,   222,     0,   223,   224,   225,   226,   227,     0,
       0,   228,   229,   230,   231,   232,     0,   233,   234,   235,
     236,   237,     0,   238,     0,   239,   240,   241,   242,     0,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
       0,   251,   252,     0,     0,     0,     0,     0,     0,     0,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   273,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     285,   286,   287,   288,   289,     0,   290,     0,   291,   292,
     293,     0,   294,     0,   295,     0,     0,     0,   296,   297,
     298,     0,   299,   300,     0,   301,     0,   302,   303,   304,
     305,   306,     0,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,     0,   317,   318,   319,   320,
     321,   322,   323,     0,   324,     0,   325,     0,     0,   326,
       0,   327,   328,   329,   330,   331,   332,   333,     0,   334,
       0,   335,     0,     0,   336,   337,   338,     0,     0,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,   351,     0,   352,   353,   354,   355,     0,   356,   357,
       0,   358,     0,   359,   360,   361,   362,   363,   364,     0,
     365,     0,     0,   366,   367,   368,     0,     0,   369,     0,
       0,     0,   370,   371,   372,   373,   374,   375,   376,   377,
       0,   378,   379,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,     0,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,     0,   425,   426,   427,   428,     0,   429,
     430,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,   441,     0,   442,   443,     0,   444,   445,   446,
     447,   448,   449,     0,   450,   451,     0,     0,   452,   453,
     454,   455,     0,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,     0,     0,   467,   468,
     469,   470,   471,   472,   473,     0,   474,     0,   475,   476,
     477,     0,     0,   478,     0,     0,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,     0,     0,     0,     0,     0,     0,   199,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2353,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,     0,     0,     0,   212,
     213,     0,   214,   215,     0,   216,   217,   218,   219,   220,
       0,   221,   222,     0,   223,   224,   225,   226,   227,     0,
       0,   228,   229,   230,   231,   232,     0,   233,   234,   235,
     236,   237,     0,   238,     0,   239,   240,   241,   242,     0,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
       0,   251,   252,     0,     0,     0,     0,     0,     0,     0,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   273,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     285,   286,   287,   288,   289,     0,   290,     0,   291,   292,
     293,     0,   294,     0,   295,     0,     0,     0,   296,   297,
     298,     0,   299,   300,     0,   301,     0,   302,   303,   304,
     305,   306,     0,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,     0,   317,   318,   319,   320,
     321,   322,   323,     0,   324,     0,   325,     0,     0,   326,
       0,   327,   328,   329,   330,   331,   332,   333,     0,   334,
       0,   335,     0,     0,   336,   337,   338,     0,     0,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,   351,     0,   352,   353,   354,   355,     0,   356,   357,
       0,   358,     0,   359,   360,   361,   362,   363,   364,     0,
     365,     0,     0,   366,   367,   368,     0,     0,   369,     0,
       0,     0,   370,   371,   372,   373,   374,   375,   376,   377,
       0,   378,   379,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,     0,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,     0,   425,   426,   427,   428,     0,   429,
     430,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,   441,     0,   442,   443,     0,   444,   445,   446,
     447,   448,   449,     0,   450,   451,     0,     0,   452,   453,
     454,   455,     0,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,     0,     0,   467,   468,
     469,   470,   471,   472,   473,     0,   474,     0,   475,   476,
     477,     0,     0,   478,     0,     0,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,     0,     0,     0,     0,     0,     0,   199,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3335,
     200,   201,   202,   203,   204,   205,   206,   207,     0,   209,
     210,   211,     0,     0,     0,     0,     0,     0,     0,   212,
     213,     0,   214,   215,     0,   216,   217,   218,   219,   220,
       0,   221,   222,     0,   223,   224,   225,   226,   227,     0,
       0,   228,   229,   230,   231,   232,     0,   233,   234,   235,
     236,   237,     0,   238,     0,   239,   240,   241,   242,     0,
     243,   244,     0,   245,   246,   247,   248,   249,   250,     0,
       0,   251,   252,     0,     0,     0,     0,     0,     0,     0,
     253,   254,   255,   256,   257,   258,   259,   260,   261,     0,
     262,     0,   263,   264,   265,   266,   267,     0,   268,   269,
     270,     0,     0,   271,   272,   273,   274,   275,     0,   276,
     277,   278,     0,   279,   280,     0,   281,   282,   283,   284,
     285,   286,   287,   288,   289,     0,   290,     0,   291,   292,
     293,     0,   294,     0,   295,     0,     0,     0,   296,   297,
     298,     0,   299,   300,     0,   301,     0,   302,   303,   304,
     305,   306,     0,   307,   308,   309,     0,   310,   311,   312,
     313,   314,   315,     0,   316,     0,   317,   318,   319,   320,
     321,   322,   323,     0,   324,     0,   325,     0,     0,   326,
       0,   327,   328,   329,   330,   331,   332,   333,     0,   334,
       0,   335,     0,     0,   336,   337,   338,     0,     0,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,   351,     0,   352,   353,   354,   355,     0,   356,   357,
       0,   358,     0,   359,   360,   361,   362,   363,   364,     0,
     365,     0,     0,   366,   367,   368,     0,     0,   369,     0,
       0,     0,   370,   371,   372,   373,   374,   375,   376,   377,
       0,   378,   379,   380,   381,   382,   383,   384,     0,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,     0,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     0,   407,   408,     0,   409,   410,   411,   412,
     413,   414,   415,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,     0,   425,   426,   427,   428,     0,   429,
     430,     0,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,   441,     0,   442,   443,     0,   444,   445,   446,
     447,   448,   449,     0,   450,   451,     0,     0,   452,   453,
     454,   455,     0,   456,   457,   458,   459,   460,   461,     0,
       0,   462,   463,   464,   465,   466,     0,     0,   467,   468,
     469,   470,   471,   472,   473,     0,   474,     0,   475,   476,
     477,     0,     0,   478,     0,     0,   479,   480,   481,   482,
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
     493,   494,   495,     0,     0,     0,     0,     0,     0,  1308,
    1213,   548,     0,     0,   755,   595,     0,     0,     0,  3649,
     200,   201,   202,   203,   204,   205,   206,   207,  1637,   209,
     210,   211,  1638,  1639,  1640,  1641,  1642,  1643,  1644,   212,
     213,  1645,   214,   215,   710,   216,   217,   218,     0,  1309,
     711,  1310,  1311,  1646,   223,   224,   225,   226,   227,  1647,
    1648,   228,   229,  1312,  1313,   232,  1649,   233,   234,   235,
     236,     0,  1650,   238,  1651,   239,   240,   241,   242,   712,
     243,   244,  1652,   245,   246,   247,   248,   249,   250,  1653,
     713,   251,   252,  1654,  1655,  1656,   714,  1657,  1658,  1659,
     253,   254,   255,   256,   257,   258,  1314,  1315,   261,  1660,
     262,  1661,   263,   264,   265,   266,   267,  1662,   268,   269,
     270,  1663,  1664,   271,   272,   995,   274,   275,  1665,   276,
     277,   278,  1666,   279,   280,  1667,   281,   282,   283,   284,
       0,   286,   287,   288,     0,  1668,   290,  1669,   291,  1316,
     293,  1670,   294,  1671,   295,   715,  1672,   716,   296,   297,
     298,  1673,   299,     0,  1674,   301,  1675,   302,   303,   304,
     305,   306,   717,   307,   308,   309,  1676,   310,   311,   312,
     313,   314,   315,  1677,   316,   718,     0,   318,   319,   320,
     321,  1317,  1318,  1678,  1319,  1679,   325,   719,   720,   326,
     721,   327,   328,   329,   330,   331,   332,   333,  1680,     0,
     722,   335,   723,  1681,   336,   337,   338,  1682,  1683,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
     350,  1320,   724,  1321,   353,   354,     0,  1684,   356,   357,
     725,   358,  1685,     0,   360,  1322,   362,   363,   364,  1686,
     365,  1687,  1688,  3068,   367,   368,  1689,  1690,     0,   726,
     727,   728,     0,   371,   372,   373,   374,   375,   376,   377,
    1691,   378,     0,   380,     0,   382,   383,   384,  1692,   385,
     386,   387,   388,   389,   390,   391,  1323,   393,   394,   395,
     396,  1693,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,  1694,   407,   408,   729,   409,   410,     0,   412,
     413,   414,   415,   416,   417,   418,   419,  1695,   420,   421,
     422,   423,   424,  1696,   425,  1844,   427,   428,   730,   429,
    1325,  1697,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,     0,  1698,   442,   443,  1699,   444,   445,   446,
     447,   448,   449,  1700,  1326,  1327,  1701,  1702,   452,     0,
     454,     0,  1703,   456,   457,   458,   459,   460,   461,  1704,
    1705,   462,   463,   464,   465,   466,  1706,  1707,   467,   468,
     469,   470,   471,     0,  1328,  1708,   474,   731,   475,   476,
     477,  1709,  1710,   478,  1711,  1712,   479,   480,   481,   482,
     483,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     493,   494,   495,     0,     0,     0,   758,   759,   760,     0,
    3069,  3070,   763,   764,   765,   766,   199,     0,     0,     0,
       0,   755,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   756,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   757,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
       0,     0,     0,   758,   759,   760,     0,   761,   762,   763,
     764,   765,   766,   199,     0,     0,     0,     0,   755,     0,
       0,     0,     0,     0,   200,   201,   202,   203,   204,   205,
     206,   207,     0,   209,   210,   211,     0,     0,     0,     0,
       0,     0,     0,   212,   213,     0,   214,   215,     0,   216,
     217,   218,   219,   220,     0,   221,   222,     0,   223,   224,
     225,   226,   227,     0,     0,   228,   229,   230,   231,   232,
       0,   233,   840,   235,   236,   237,     0,   238,     0,   239,
     240,   241,   242,     0,   243,   244,     0,   245,   246,   247,
     248,   249,   250,     0,     0,   251,   252,     0,     0,     0,
       0,     0,     0,     0,   253,   254,   255,   256,   257,   258,
     259,   260,   261,     0,   262,     0,   263,   264,   265,   266,
     267,     0,   268,   269,   270,     0,     0,   271,   272,   273,
     274,   275,     0,   276,   277,   278,     0,   279,   280,     0,
     281,   282,   283,   284,   285,   286,   287,   288,   289,     0,
     841,     0,   291,   292,   293,     0,   294,     0,   295,     0,
       0,     0,   296,   297,   298,     0,   299,   300,     0,   301,
       0,   302,   303,   304,   305,   306,     0,   307,   308,   309,
       0,   310,   311,   312,   313,   314,   315,     0,   316,     0,
     317,   318,   319,   320,   321,   322,   323,     0,   324,     0,
     325,     0,     0,   326,     0,   327,   328,   329,   330,   331,
     332,   333,     0,   334,     0,   335,     0,     0,   336,   337,
     338,     0,     0,   339,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,   350,   351,     0,   352,   353,   354,
     355,     0,   356,   357,     0,   358,     0,   359,   360,   361,
     362,   363,   364,     0,   365,     0,     0,   366,   367,   368,
       0,     0,   369,     0,     0,     0,   370,   371,   372,   373,
     374,   375,   376,   377,     0,   378,   379,   380,   381,   382,
     383,   384,     0,   385,   386,   387,   388,   389,   390,   391,
     392,   393,   394,   395,   396,     0,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     0,   407,   408,     0,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,     0,   420,   421,   422,   423,   424,     0,   425,   426,
     427,   428,     0,   429,   430,     0,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,     0,   442,   443,
       0,   444,   445,   446,   447,   448,   449,     0,   450,   451,
       0,     0,   452,   453,   454,   455,     0,   456,   457,   458,
     459,   460,   461,     0,     0,   462,   463,   464,   465,   466,
       0,     0,   467,   468,   469,   470,   471,   472,   473,     0,
     474,     0,   475,   476,   477,     0,     0,   478,     0,     0,
     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
     489,   490,   491,   492,   493,   494,   495,     0,     0,     0,
     758,   759,   760,     0,   761,   762,   763,   764,   765,   766,
     199,     0,     0,     0,     0,   755,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   884,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   885,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   886,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,     0,     0,     0,   758,   759,   760,
       0,   761,   762,   763,   764,   765,   766,   199,     0,     0,
       0,     0,   755,     0,     0,     0,     0,     0,   200,   201,
     202,   203,   204,   205,   206,   207,     0,   209,   210,   211,
       0,     0,     0,     0,     0,     0,     0,   212,   213,     0,
     214,   215,     0,   216,   217,   218,   219,   220,     0,   221,
     222,     0,   223,   224,   225,   226,   227,     0,     0,   228,
     229,   230,   231,   232,     0,   233,  1291,   235,   236,   237,
       0,   238,     0,   239,   240,   241,   242,     0,   243,   244,
       0,   245,   246,   247,   248,   249,   250,     0,     0,   251,
     252,     0,     0,     0,     0,     0,     0,     0,   253,   254,
     255,   256,   257,   258,   259,   260,   261,     0,   262,     0,
     263,   264,   265,   266,   267,     0,   268,   269,   270,     0,
       0,   271,   272,   273,   274,   275,     0,   276,   277,   278,
       0,   279,   280,     0,   281,   282,   283,   284,   285,   286,
     287,   288,   289,     0,  1292,     0,   291,   292,   293,     0,
     294,     0,   295,     0,     0,     0,   296,   297,   298,     0,
     299,   300,     0,   301,     0,   302,   303,   304,   305,   306,
       0,   307,   308,   309,     0,   310,   311,   312,   313,   314,
     315,     0,   316,     0,   317,   318,   319,   320,   321,   322,
     323,     0,   324,     0,   325,     0,     0,   326,     0,   327,
     328,   329,   330,   331,   332,   333,     0,   334,     0,   335,
       0,     0,   336,   337,   338,     0,     0,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
       0,   352,   353,   354,   355,     0,   356,   357,     0,   358,
       0,   359,   360,   361,   362,   363,   364,     0,   365,     0,
       0,   366,   367,   368,     0,     0,   369,     0,     0,     0,
     370,   371,   372,   373,   374,   375,   376,   377,     0,   378,
     379,   380,   381,   382,   383,   384,     0,   385,   386,   387,
     388,   389,   390,   391,   392,   393,   394,   395,   396,     0,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       0,   407,   408,     0,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,     0,   420,   421,   422,   423,
     424,     0,   425,   426,   427,   428,     0,   429,   430,     0,
     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
     441,     0,   442,   443,     0,   444,   445,   446,   447,   448,
     449,     0,   450,   451,     0,     0,   452,   453,   454,   455,
       0,   456,   457,   458,   459,   460,   461,     0,     0,   462,
     463,   464,   465,   466,     0,     0,   467,   468,   469,   470,
     471,   472,   473,     0,   474,     0,   475,   476,   477,     0,
       0,   478,     0,     0,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,     0,     0,     0,   758,   759,   760,     0,   761,   762,
     763,   764,   765,   766,   199,     0,     0,     0,     0,   755,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,     0,     0,
       0,   758,   759,   760,     0,   761,   762,   763,   764,   765,
     766,   199,     0,     0,     0,     0,   755,     0,     0,     0,
       0,     0,   200,   201,   202,   203,   204,   205,   206,   207,
       0,   209,   210,   211,     0,     0,     0,     0,     0,     0,
       0,   212,   213,     0,   214,   215,     0,   216,   217,   218,
     219,   220,     0,   221,   222,     0,   223,   224,   225,   226,
     227,     0,     0,   228,   229,   230,   231,   232,     0,   233,
    2409,   235,   236,   237,     0,   238,     0,   239,   240,   241,
     242,     0,   243,   244,     0,   245,   246,   247,   248,   249,
     250,     0,     0,   251,   252,     0,     0,     0,     0,     0,
       0,     0,   253,   254,   255,   256,   257,   258,   259,   260,
     261,     0,   262,     0,   263,   264,   265,   266,   267,     0,
     268,   269,   270,     0,     0,   271,   272,   273,   274,   275,
       0,   276,   277,   278,     0,   279,   280,     0,   281,   282,
     283,   284,   285,   286,   287,   288,   289,     0,  2410,     0,
     291,   292,   293,     0,   294,     0,   295,     0,     0,     0,
     296,   297,   298,     0,   299,   300,     0,   301,     0,   302,
     303,   304,   305,   306,     0,   307,   308,   309,     0,   310,
     311,   312,   313,   314,   315,     0,   316,     0,   317,   318,
     319,   320,   321,   322,   323,     0,   324,     0,   325,     0,
       0,   326,     0,   327,   328,   329,   330,   331,   332,   333,
       0,   334,     0,   335,     0,     0,   336,   337,   338,     0,
       0,   339,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,   350,   351,     0,   352,   353,   354,   355,     0,
     356,   357,     0,   358,     0,   359,   360,   361,   362,   363,
     364,     0,   365,     0,     0,   366,   367,   368,     0,     0,
     369,     0,     0,     0,   370,   371,   372,   373,   374,   375,
     376,   377,     0,   378,   379,   380,   381,   382,   383,   384,
       0,   385,   386,   387,   388,   389,   390,   391,   392,   393,
     394,   395,   396,     0,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     0,   407,   408,     0,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,   419,     0,
     420,   421,   422,   423,   424,     0,   425,   426,   427,   428,
       0,   429,   430,     0,   431,   432,   433,   434,   435,   436,
     437,   438,   439,   440,   441,     0,   442,   443,     0,   444,
     445,   446,   447,   448,   449,     0,   450,   451,     0,     0,
     452,   453,   454,   455,     0,   456,   457,   458,   459,   460,
     461,     0,     0,   462,   463,   464,   465,   466,     0,     0,
     467,   468,   469,   470,   471,   472,   473,     0,   474,     0,
     475,   476,   477,     0,     0,   478,     0,     0,   479,   480,
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
     491,   492,   493,   494,   495,     0,     0,     0,   758,   759,
     760,     0,   761,   762,   763,   764,   765,   766,   199,     0,
       0,     0,     0,   755,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,  3860,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,     0,     0,  1636,   758,   759,   760,     0,   761,
     762,   763,   764,   765,   766,   200,   201,   202,   203,   204,
     205,   206,   207,  1637,   209,   210,   211,  1638,  1639,  1640,
    1641,  1642,  1643,  1644,   212,   213,  1645,   214,   215,   710,
     216,   217,   218,   219,   220,   711,   221,   222,  1646,   223,
     224,   225,   226,   227,  1647,  1648,   228,   229,   230,   231,
     232,  1649,   233,   234,   235,   236,   237,  1650,   238,  1651,
     239,   240,   241,   242,   712,   243,   244,  1652,   245,   246,
     247,   248,   249,   250,  1653,   713,   251,   252,  1654,  1655,
    1656,   714,  1657,  1658,  1659,   253,   254,   255,   256,   257,
     258,   259,   260,   261,  1660,   262,  1661,   263,   264,   265,
     266,   267,  1662,   268,   269,   270,  1663,  1664,   271,   272,
     273,   274,   275,  1665,   276,   277,   278,  1666,   279,   280,
    1667,   281,   282,   283,   284,   285,   286,   287,   288,   289,
    1668,   290,  1669,   291,   292,   293,  1670,   294,  1671,   295,
     715,  1672,   716,   296,   297,   298,  1673,   299,   300,  1674,
     301,  1675,   302,   303,   304,   305,   306,   717,   307,   308,
     309,  1676,   310,   311,   312,   313,   314,   315,  1677,   316,
     718,   317,   318,   319,   320,   321,   322,   323,  1678,   324,
    1679,   325,   719,   720,   326,   721,   327,   328,   329,   330,
     331,   332,   333,  1680,   334,   722,   335,   723,  1681,   336,
     337,   338,  1682,  1683,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   724,   352,   353,
     354,   355,  1684,   356,   357,   725,   358,  1685,   359,   360,
     361,   362,   363,   364,  1686,   365,  1687,  1688,   366,   367,
     368,  1689,  1690,   369,   726,   727,   728,   370,   371,   372,
     373,   374,   375,   376,   377,  1691,   378,   379,   380,   381,
     382,   383,   384,  1692,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,  1693,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,  1694,   407,   408,
     729,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,  1695,   420,   421,   422,   423,   424,  1696,   425,
     426,   427,   428,   730,   429,   430,  1697,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,  1698,   442,
     443,  1699,   444,   445,   446,   447,   448,   449,  1700,   450,
     451,  1701,  1702,   452,   453,   454,   455,  1703,   456,   457,
     458,   459,   460,   461,  1704,  1705,   462,   463,   464,   465,
     466,  1706,  1707,   467,   468,   469,   470,   471,   472,   473,
    1708,   474,   731,   475,   476,   477,  1709,  1710,   478,  1711,
    1712,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,  1713,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,   679,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   306,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,  1308,     0,     0,     0,
       0,     0,     0,     0,     0,  3737,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,   710,   216,   217,   218,     0,  1309,   711,  1310,  1311,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
    1312,  1313,   232,     0,   233,   234,   235,   236,     0,     0,
     238,     0,   239,   240,   241,   242,   712,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,   713,   251,   252,
       0,     0,     0,   714,     0,     0,     0,   253,   254,   255,
     256,   257,   258,  1314,  1315,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   995,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,     0,   286,   287,
     288,     0,     0,   290,     0,   291,  1316,   293,     0,   294,
       0,   295,   715,     0,   716,   296,   297,   298,     0,   299,
       0,     0,   301,     0,   302,   303,   304,   305,   306,   717,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,   718,     0,   318,   319,   320,   321,  1317,  1318,
       0,  1319,     0,   325,   719,   720,   326,   721,   327,   328,
     329,   330,   331,   332,   333,     0,     0,   722,   335,   723,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,  1320,   724,
    1321,   353,   354,     0,     0,   356,   357,   725,   358,     0,
       0,   360,  1322,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,     0,   726,   727,   728,     0,
     371,   372,   373,   374,   375,   376,   377,     0,   378,     0,
     380,     0,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,  1323,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,   729,   409,   410,     0,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,  1324,   427,   428,   730,   429,  1325,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,     0,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,  1326,  1327,     0,     0,   452,     0,   454,     0,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
       0,  1328,     0,   474,   731,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,     0,     0,
    1981,     0,     0,     0,     0,     0,     0,   493,   494,   495,
       0,   200,   201,   202,   203,   204,   205,   206,   207,  1767,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,   710,   216,   217,   218,     0,
    1309,   711,  1310,  1311,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,  1312,  1313,   232,     0,   233,   234,
     235,   236,     0,     0,   238,     0,   239,   240,   241,   242,
     712,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,   713,   251,   252,     0,     0,     0,   714,     0,     0,
       0,   253,   254,   255,   256,   257,   258,  1314,  1315,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   995,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,     0,   286,   287,   288,     0,     0,   290,     0,   291,
    1316,   293,     0,   294,     0,   295,   715,     0,   716,   296,
     297,   298,     0,   299,     0,     0,   301,     0,   302,   303,
     304,   305,   306,   717,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,   718,     0,   318,   319,
     320,   321,  1317,  1318,     0,  1319,     0,   325,   719,   720,
     326,   721,   327,   328,   329,   330,   331,   332,   333,     0,
       0,   722,   335,   723,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,  1320,   724,  1321,   353,   354,     0,     0,   356,
     357,   725,   358,     0,     0,   360,  1322,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,     0,
     726,   727,   728,     0,   371,   372,   373,   374,   375,   376,
     377,     0,   378,     0,   380,     0,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,  1323,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,   729,   409,   410,     0,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,  1324,   427,   428,   730,
     429,  1325,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,     0,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,  1326,  1327,     0,     0,   452,
       0,   454,     0,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,     0,  1328,     0,   474,   731,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,     0,     0,   199,  1213,   548,     0,     0,     0,
     595,   493,   494,   495,     0,   200,   201,   202,   203,   204,
     205,   206,   207,  1767,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,  1626,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
    1440,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,  1441,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,  1442,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,  1213,
     548,     0,     0,     0,   595,   607,  1214,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,  1631,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,  1440,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
    1441,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,  1442,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,  1213,   548,     0,     0,     0,   595,   607,
    1214,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,  1440,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   306,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,  1441,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,  1442,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,   595,   607,  1214,     0,     0,   200,   596,   202,
     203,   204,   205,   206,   207,   597,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   598,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   599,   292,   293,     0,   294,
       0,   600,     0,   601,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,   602,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   603,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   604,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   605,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     606,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,   794,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
    1570,     0,     0,  1571,     0,     0,     0,   607,   608,     0,
       0,   795,     0,     0,     0,     0,     0,     0,     0,     0,
    1572,     0,     0,     0,   796,   797,     0,     0,  1574,     0,
       0,     0,     0,   798,  1575,     0,     0,   799,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   800,     0,     0,     0,  1576,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   801,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   802,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   803,     0,     0,     0,     0,   804,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     805,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   806,     0,     0,  1577,     0,
       0,     0,  1578,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1579,  1580,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1581,     0,
       0,     0,     0,     0,   807,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1582,     0,     0,  1583,     0,     0,     0,
       0,     0,   185,     0,     0,     0,     0,     0,     0,  1584,
       0,     0,  1585,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   808,     0,     0,
       0,   809,     0,   810,     0,     0,     0,     0,     0,   811,
       0,     0,   812,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   813,     0,   814,
       0,     0,     0,   815,     0,     0,     0,     0,     0,     0,
       0,   816,     0,     0,  1586,     0,   817,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     818,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1587,  1588,  1589,     0,  1590,  1591,  1592,  1593,
    1594,  1595,  1636,  4143,   548,     0,     0,     0,   595,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,  1637,   209,   210,   211,  1638,  1639,  1640,  1641,  1642,
    1643,  1644,   212,   213,  1645,   214,   215,   710,   216,   217,
     218,   219,   220,   711,   221,   222,  1646,   223,   224,   225,
     226,   227,  1647,  1648,   228,   229,   230,   231,   232,  1649,
     233,   234,   235,   236,   237,  1650,   238,  1651,   239,   240,
     241,   242,   712,   243,   244,  1652,   245,   246,   247,   248,
     249,   250,  1653,   713,   251,   252,  1654,  1655,  1656,   714,
    1657,  1658,  1659,   253,   254,   255,   256,   257,   258,   259,
     260,   261,  1660,   262,  1661,   263,   264,   265,   266,   267,
    1662,   268,   269,   270,  1663,  1664,   271,   272,   273,   274,
     275,  1665,   276,   277,   278,  1666,   279,   280,  1667,   281,
     282,   283,   284,   285,   286,   287,   288,   289,  1668,   290,
    1669,   291,   292,   293,  1670,   294,  1671,   295,   715,  1672,
     716,   296,   297,   298,  1673,   299,   300,  1674,   301,  1675,
     302,   303,   304,   305,   306,   717,   307,   308,   309,  1676,
     310,   311,   312,   313,   314,   315,  1677,   316,   718,   317,
     318,   319,   320,   321,   322,   323,  1678,   324,  1679,   325,
     719,   720,   326,   721,   327,   328,   329,   330,   331,   332,
     333,  1680,   334,   722,   335,   723,  1681,   336,   337,   338,
    1682,  1683,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,   724,   352,   353,   354,   355,
    1684,   356,   357,   725,   358,  1685,   359,   360,   361,   362,
     363,   364,  1686,   365,  1687,  1688,   366,   367,   368,  1689,
    1690,   369,   726,   727,   728,   370,   371,   372,   373,   374,
     375,   376,   377,  1691,   378,   379,   380,   381,   382,   383,
     384,  1692,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,  1693,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,  1694,   407,   408,   729,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
    1695,   420,   421,   422,   423,   424,  1696,   425,   426,   427,
     428,   730,   429,   430,  1697,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,  1698,   442,   443,  1699,
     444,   445,   446,   447,   448,   449,  1700,   450,   451,  1701,
    1702,   452,   453,   454,   455,  1703,   456,   457,   458,   459,
     460,   461,  1704,  1705,   462,   463,   464,   465,   466,  1706,
    1707,   467,   468,   469,   470,   471,   472,   473,  1708,   474,
     731,   475,   476,   477,  1709,  1710,   478,  1711,  1712,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,  1636,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,  1637,   209,   210,   211,  1638,
    1639,  1640,  1641,  1642,  1643,  1644,   212,   213,  1645,   214,
     215,   710,   216,   217,   218,   219,   220,   711,   221,   222,
    1646,   223,   224,   225,   226,   227,  1647,  1648,   228,   229,
     230,   231,   232,  1649,   233,   234,   235,   236,   237,  1650,
     238,  1651,   239,   240,   241,   242,   712,   243,   244,  1652,
     245,   246,   247,   248,   249,   250,  1653,   713,   251,   252,
    1654,  1655,  1656,   714,  1657,  1658,  1659,   253,   254,   255,
     256,   257,   258,   259,   260,   261,  1660,   262,  1661,   263,
     264,   265,   266,   267,  1662,   268,   269,   270,  1663,  1664,
     271,   272,   273,   274,   275,  1665,   276,   277,   278,  1666,
     279,   280,  1667,   281,   282,   283,   284,   285,   286,   287,
     288,   289,  1668,   290,  1669,   291,   292,   293,  1670,   294,
    1671,   295,   715,  1672,   716,   296,   297,   298,  1673,   299,
     300,  1674,   301,  1675,   302,   303,   304,   305,   306,   717,
     307,   308,   309,  1676,   310,   311,   312,   313,   314,   315,
    1677,   316,   718,   317,   318,   319,   320,   321,   322,   323,
    1678,   324,  1679,   325,   719,   720,   326,   721,   327,   328,
     329,   330,   331,   332,   333,  1680,   334,   722,   335,   723,
    1681,   336,   337,   338,  1682,  1683,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,   724,
     352,   353,   354,   355,  1684,   356,   357,   725,   358,  1685,
     359,   360,   361,   362,   363,   364,  1686,   365,  1687,  1688,
     366,   367,   368,  1689,  1690,   369,   726,   727,   728,   370,
     371,   372,   373,   374,   375,   376,   377,  1691,   378,   379,
     380,   381,   382,   383,   384,  1692,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,  1693,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,  1694,
     407,   408,   729,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,  1695,   420,   421,   422,   423,   424,
    1696,   425,   426,   427,   428,   730,   429,   430,  1697,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
    1698,   442,   443,  1699,   444,   445,   446,   447,   448,   449,
    1700,   450,   451,  1701,  1702,   452,   453,   454,   455,  1703,
     456,   457,   458,   459,   460,   461,  1704,  1705,   462,   463,
     464,   465,   466,  1706,  1707,   467,   468,   469,   470,   471,
     472,   473,  1708,   474,   731,   475,   476,   477,  1709,  1710,
     478,  1711,  1712,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
    1636,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,  2470,   205,   206,   207,  1637,
     209,   210,   211,  1638,  1639,  1640,  1641,  1642,  1643,  1644,
     212,   213,  1645,   214,   215,   710,   216,   217,   218,   219,
     220,   711,   221,   222,  1646,   223,   224,   225,   226,   227,
    1647,  1648,   228,   229,   230,   231,   232,  1649,   233,   234,
     235,   236,   237,  1650,   238,  1651,   239,   240,   241,   242,
     712,   243,   244,  1652,   245,   246,   247,   248,   249,   250,
    1653,   713,   251,   252,  1654,  1655,  1656,   714,  1657,  1658,
    1659,   253,   254,   255,   256,   257,   258,   259,   260,   261,
    1660,   262,  1661,   263,   264,   265,   266,   267,  1662,   268,
     269,   270,  1663,  1664,   271,   272,   273,  2471,   275,  1665,
     276,   277,   278,  1666,   279,   280,  1667,   281,   282,   283,
     284,   285,   286,   287,   288,   289,  1668,   290,  1669,   291,
     292,   293,  1670,   294,  1671,   295,   715,  1672,   716,   296,
     297,   298,  1673,   299,   300,  1674,   301,  1675,   302,   303,
     304,   305,   306,   717,   307,   308,   309,  1676,   310,   311,
     312,   313,   314,   315,  1677,   316,   718,   317,   318,   319,
     320,   321,   322,   323,  1678,   324,  1679,   325,   719,   720,
     326,   721,   327,   328,   329,   330,   331,   332,   333,  1680,
     334,   722,   335,   723,  1681,   336,   337,   338,  1682,  1683,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,   724,   352,   353,   354,   355,  1684,   356,
     357,   725,   358,  1685,   359,   360,   361,   362,   363,   364,
    1686,   365,  1687,  1688,   366,   367,   368,  1689,  1690,   369,
     726,   727,   728,   370,   371,   372,   373,   374,   375,   376,
     377,  1691,   378,   379,   380,   381,   382,   383,   384,  1692,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,  1693,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,  1694,   407,   408,   729,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,  1695,   420,
     421,   422,   423,   424,  1696,  2472,   426,   427,   428,   730,
     429,   430,  1697,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,  1698,   442,   443,  1699,   444,   445,
     446,   447,   448,   449,  1700,   450,   451,  1701,  1702,   452,
     453,   454,   455,  1703,   456,   457,   458,   459,   460,   461,
    1704,  1705,   462,   463,   464,   465,   466,  1706,  1707,   467,
     468,   469,   470,   471,   472,   473,  1708,   474,   731,   475,
     476,   477,  1709,  1710,   478,  1711,  1712,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   709,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,   710,
     216,   217,   218,   219,   220,   711,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,   712,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,   713,   251,   252,     0,     0,
       0,   714,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
     715,     0,   716,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,   717,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
     718,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,   719,   720,   326,   721,   327,   328,   329,   330,
     331,   332,   333,     0,   334,   722,   335,   723,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   724,   352,   353,
     354,   355,     0,   356,   357,   725,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,   726,   727,   728,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
     729,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,   730,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,   731,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   709,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,   710,   216,   217,   218,   219,   220,   711,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,   712,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,   713,
     251,   252,     0,     0,     0,   714,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,   715,     0,   716,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     870,   717,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,   718,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,   719,   720,   326,   721,
     327,   328,   329,   330,   331,   332,   333,     0,   334,   722,
     335,   723,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,   724,   352,   353,   354,   355,     0,   356,   357,   725,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,   726,   727,
     728,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,   729,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,   730,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,   731,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   709,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,   710,   216,   217,
     218,   219,   220,   711,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,   712,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,   713,   251,   252,     0,     0,     0,   714,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,   715,     0,
     716,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   879,   717,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,   718,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
     719,   720,   326,   721,   327,   328,   329,   330,   331,   332,
     333,     0,   334,   722,   335,   723,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,   724,   352,   353,   354,   355,
       0,   356,   357,   725,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,   726,   727,   728,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,   729,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,   730,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
     731,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,  1791,   233,   234,   235,   236,   237,     0,
     238,  1856,   239,   240,   241,   242,     0,   243,   244,  1792,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,  1857,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
    1794,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,  1795,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,  1796,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,  1791,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,  1792,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,  1857,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,  1794,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   306,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,  2658,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,  1795,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,  1796,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     645,   206,   207,   614,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,   615,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,   646,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   616,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,   617,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,   614,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,   615,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
    2381,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
     616,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   617,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,  1791,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,  1792,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,  1857,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,  1794,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   306,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,  1795,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,  1796,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,   614,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,   615,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,   616,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,   617,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,   548,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,  1440,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   306,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,  1441,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,  1442,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,  1467,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,  1468,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,  1469,   295,
       0,     0,     0,  1470,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,  1471,  1472,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,  1473,   416,   417,
     418,   419,     0,  1474,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,  1475,   444,  1476,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,   615,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
     616,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,   617,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     3,     4,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   306,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
     912,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,   548,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,  1612,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
    1942,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   306,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,  1943,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     3,     4,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,  2454,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,  2455,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,  2466,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   306,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,  2467,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,   208,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,   540,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   306,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   541,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,   639,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   640,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   641,
     451,     0,     0,   642,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,   668,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   669,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   670,   451,     0,     0,   671,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   306,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,   674,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,   863,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,   548,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   306,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,  1068,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,  1079,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     656,   229,   230,   231,  1080,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   659,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   660,   410,   411,   412,   413,
     414,   661,   416,   417,   418,   419,     0,   420,   421,   422,
     423,  1072,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   663,   451,     0,     0,   664,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   665,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,   548,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,  1430,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,  2289,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,  2290,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,  2291,   444,   445,  2292,   447,  2293,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
    2294,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,  2721,   301,     0,   302,   303,
     304,   305,   306,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,  3308,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,  3321,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,  3507,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   306,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,  3509,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
    3511,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   306,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,  3863,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   306,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   629,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   637,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   656,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   657,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   306,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   658,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   659,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   660,   410,   411,
     412,   413,   414,   661,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   662,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   663,   451,     0,     0,   664,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   665,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   686,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     780,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   831,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   852,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   875,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   881,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     889,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   891,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   893,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   895,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   898,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     900,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     901,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,   904,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   656,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   659,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   660,   410,   411,   412,   413,   414,   661,
     416,   417,   418,   419,     0,   420,   421,   422,   423,  1072,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   663,   451,     0,     0,   664,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   665,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,  1353,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,  1380,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
    1408,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   409,   410,   411,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   450,   451,     0,     0,   452,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,  1410,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,   306,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,  1499,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,  1764,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,   306,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,     0,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   656,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   659,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   660,   410,   411,   412,   413,   414,   661,   416,   417,
     418,   419,     0,   420,   421,   422,   423,  1072,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,  1782,   446,   447,   448,   449,     0,   663,
     451,     0,     0,   664,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   665,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,   199,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,     0,   216,   217,   218,   219,   220,     0,
     221,   222,     0,   223,   224,   225,   226,   227,     0,     0,
     656,   229,   230,   231,   232,     0,   233,   234,   235,   236,
     237,     0,   238,     0,   239,   240,   241,   242,     0,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,     0,
     251,   252,     0,     0,     0,     0,     0,     0,     0,   253,
     254,   255,   256,   257,   258,   259,   260,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   273,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,   285,
     286,   287,   288,   289,     0,   290,     0,   291,   292,   293,
       0,   294,     0,   295,     0,     0,     0,   296,   297,   298,
       0,   299,   300,     0,   301,     0,   302,   303,   304,   305,
     306,     0,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,     0,   317,   318,   319,   320,   321,
     322,   323,     0,   324,     0,   325,     0,     0,   326,     0,
     327,   328,   329,   330,   331,   332,   333,     0,   334,     0,
     335,     0,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   659,
     351,     0,   352,   353,   354,   355,     0,   356,   357,     0,
     358,     0,   359,   360,   361,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,   369,     0,     0,
       0,   370,   371,   372,   373,   374,   375,   376,   377,     0,
     378,   379,   380,   381,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,     0,   660,   410,   411,   412,   413,
     414,  1837,   416,   417,   418,   419,     0,   420,   421,   422,
     423,  1072,     0,   425,   426,   427,   428,     0,   429,   430,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,   441,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,   663,   451,     0,     0,   664,   453,   454,
     455,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,   472,   473,     0,   474,     0,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   665,
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
     494,   495,   199,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
     207,     0,   209,   210,   211,     0,     0,     0,     0,     0,
       0,     0,   212,   213,     0,   214,   215,     0,   216,   217,
     218,   219,   220,     0,   221,   222,     0,   223,   224,   225,
     226,   227,     0,     0,   228,   229,   230,   231,   232,     0,
     233,   234,   235,   236,   237,     0,   238,     0,   239,   240,
     241,   242,     0,   243,   244,     0,   245,   246,   247,   248,
     249,   250,     0,     0,   251,   252,     0,     0,     0,     0,
       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
     260,   261,     0,   262,     0,   263,   264,   265,   266,   267,
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
     275,     0,   276,   277,   278,     0,   279,   280,     0,   281,
     282,   283,   284,   285,   286,   287,   288,   289,     0,   290,
       0,   291,   292,   293,     0,   294,     0,   295,     0,     0,
       0,   296,   297,   298,     0,   299,   300,     0,   301,     0,
     302,   303,   304,   305,  2072,     0,   307,   308,   309,     0,
     310,   311,   312,   313,   314,   315,     0,   316,     0,   317,
     318,   319,   320,   321,   322,   323,     0,   324,     0,   325,
       0,     0,   326,     0,   327,   328,   329,   330,   331,   332,
     333,     0,   334,     0,   335,     0,     0,   336,   337,   338,
       0,     0,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,     0,   352,   353,   354,   355,
       0,   356,   357,     0,   358,     0,   359,   360,   361,   362,
     363,   364,     0,   365,     0,     0,   366,   367,   368,     0,
       0,   369,     0,     0,     0,   370,   371,   372,   373,   374,
     375,   376,   377,     0,   378,   379,   380,   381,   382,   383,
     384,     0,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,     0,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,     0,   407,   408,     0,   409,
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,     0,   425,   426,   427,
     428,     0,   429,   430,     0,   431,   432,   433,   434,   435,
     436,   437,   438,   439,   440,   441,     0,   442,   443,     0,
     444,   445,   446,   447,   448,   449,     0,   450,   451,     0,
       0,   452,   453,   454,   455,     0,   456,   457,   458,   459,
     460,   461,     0,     0,   462,   463,   464,   465,   466,     0,
       0,   467,   468,   469,   470,   471,   472,   473,     0,   474,
       0,   475,   476,   477,     0,     0,   478,     0,     0,   479,
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
     490,   491,   492,   493,   494,   495,   199,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   200,   201,   202,
     203,   204,   205,   206,   207,     0,   209,   210,   211,     0,
       0,     0,     0,     0,     0,     0,   212,   213,     0,   214,
     215,     0,   216,   217,   218,   219,   220,     0,   221,   222,
       0,   223,   224,   225,   226,   227,     0,     0,   228,   229,
     230,   231,   232,     0,   233,   234,   235,   236,   237,     0,
     238,     0,   239,   240,   241,   242,     0,   243,   244,     0,
     245,   246,   247,   248,   249,   250,     0,     0,   251,   252,
       0,     0,     0,     0,     0,     0,     0,   253,   254,   255,
     256,   257,   258,   259,   260,   261,     0,   262,     0,   263,
     264,   265,   266,   267,     0,   268,   269,   270,     0,     0,
     271,   272,   273,   274,   275,     0,   276,   277,   278,     0,
     279,   280,     0,   281,   282,   283,   284,   285,   286,   287,
     288,   289,     0,   290,     0,   291,   292,   293,     0,   294,
       0,   295,     0,     0,     0,   296,   297,   298,     0,   299,
     300,     0,   301,     0,   302,   303,   304,   305,  2457,     0,
     307,   308,   309,     0,   310,   311,   312,   313,   314,   315,
       0,   316,     0,   317,   318,   319,   320,   321,   322,   323,
       0,   324,     0,   325,     0,     0,   326,     0,   327,   328,
     329,   330,   331,   332,   333,     0,   334,     0,   335,     0,
       0,   336,   337,   338,     0,     0,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,     0,
     352,   353,   354,   355,     0,   356,   357,     0,   358,     0,
     359,   360,   361,   362,   363,   364,     0,   365,     0,     0,
     366,   367,   368,     0,     0,   369,     0,     0,     0,   370,
     371,   372,   373,   374,   375,   376,   377,     0,   378,   379,
     380,   381,   382,   383,   384,     0,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,     0,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,     0,
     407,   408,     0,   409,   410,   411,   412,   413,   414,   415,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
       0,   425,   426,   427,   428,     0,   429,   430,     0,   431,
     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
       0,   442,   443,     0,   444,   445,   446,   447,   448,   449,
       0,   450,   451,     0,     0,   452,   453,   454,   455,     0,
     456,   457,   458,   459,   460,   461,     0,     0,   462,   463,
     464,   465,   466,     0,     0,   467,   468,   469,   470,   471,
     472,   473,     0,   474,     0,   475,   476,   477,     0,     0,
     478,     0,     0,   479,   480,   481,   482,   483,   484,   485,
     486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,     0,   216,   217,   218,   219,
     220,     0,   221,   222,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,   230,   231,   232,     0,   233,   234,
     235,   236,   237,     0,   238,     0,   239,   240,   241,   242,
       0,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,     0,   251,   252,     0,     0,     0,     0,     0,     0,
       0,   253,   254,   255,   256,   257,   258,   259,   260,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   273,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,   285,   286,   287,   288,   289,     0,   290,     0,   291,
     292,   293,     0,   294,     0,   295,     0,     0,     0,   296,
     297,   298,     0,   299,   300,     0,   301,     0,   302,   303,
     304,   305,  2459,     0,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,     0,   317,   318,   319,
     320,   321,   322,   323,     0,   324,     0,   325,     0,     0,
     326,     0,   327,   328,   329,   330,   331,   332,   333,     0,
     334,     0,   335,     0,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,     0,   352,   353,   354,   355,     0,   356,
     357,     0,   358,     0,   359,   360,   361,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,   369,
       0,     0,     0,   370,   371,   372,   373,   374,   375,   376,
     377,     0,   378,   379,   380,   381,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,     0,   409,   410,   411,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,   426,   427,   428,     0,
     429,   430,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,   441,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,   450,   451,     0,     0,   452,
     453,   454,   455,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,   472,   473,     0,   474,     0,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
     492,   493,   494,   495,   199,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,  2542,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,   375,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,  1308,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,   710,   216,   217,   218,     0,  1309,   711,
    1310,  1311,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,  1312,  1313,   232,     0,   233,   234,   235,   236,
       0,     0,   238,     0,   239,   240,   241,   242,   712,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,   713,
     251,   252,     0,     0,     0,   714,     0,     0,     0,   253,
     254,   255,   256,   257,   258,  1314,  1315,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   995,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,     0,
     286,   287,   288,     0,     0,   290,     0,   291,  1316,   293,
       0,   294,     0,   295,   715,     0,   716,   296,   297,   298,
       0,   299,     0,     0,   301,     0,   302,   303,   304,   305,
     306,   717,   307,   308,   309,  1841,   310,   311,   312,   313,
     314,   315,     0,   316,   718,  1842,   318,   319,   320,   321,
    1317,  1318,     0,  1319,     0,   325,   719,   720,   326,   721,
     327,   328,   329,   330,   331,   332,   333,     0,     0,   722,
     335,   723,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
    1320,   724,  1321,   353,   354,     0,     0,   356,   357,   725,
     358,     0,     0,   360,  1322,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,  1843,   726,   727,
     728,     0,   371,   372,   373,   374,   375,   376,   377,     0,
     378,     0,   380,     0,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,  1323,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,   729,   409,   410,     0,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,  1844,   427,   428,   730,   429,  1325,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,     0,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,  1326,  1327,     0,     0,   452,     0,   454,
       0,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,     0,  1328,  1845,   474,   731,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
       0,  1308,     0,     0,     0,     0,     0,     0,     0,   493,
     494,   495,   200,   201,   202,   203,   204,   205,   206,   207,
       0,   209,   210,   211,     0,     0,     0,     0,     0,     0,
       0,   212,   213,     0,   214,   215,   710,   216,   217,   218,
       0,  1309,   711,  1310,  1311,     0,   223,   224,   225,   226,
     227,     0,     0,   228,   229,  1312,  1313,   232,     0,   233,
     234,   235,   236,     0,     0,   238,     0,   239,   240,   241,
     242,   712,   243,   244,     0,   245,   246,   247,   248,   249,
     250,     0,   713,   251,   252,     0,     0,     0,   714,     0,
       0,     0,   253,   254,   255,   256,   257,   258,  1314,  1315,
     261,     0,   262,     0,   263,   264,   265,   266,   267,     0,
     268,   269,   270,     0,     0,   271,   272,   995,   274,   275,
       0,   276,   277,   278,     0,   279,   280,     0,   281,   282,
     283,   284,     0,   286,   287,   288,     0,     0,   290,     0,
     291,  1316,   293,     0,   294,     0,   295,   715,     0,   716,
     296,   297,   298,     0,   299,     0,     0,   301,     0,   302,
     303,   304,   305,   306,   717,   307,   308,   309,     0,   310,
     311,   312,   313,   314,   315,     0,   316,   718,     0,   318,
     319,   320,   321,  1317,  1318,     0,  1319,     0,   325,   719,
     720,   326,   721,   327,   328,   329,   330,   331,   332,   333,
       0,     0,   722,   335,   723,     0,   336,   337,   338,     0,
       0,   339,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,   350,  1320,   724,  1321,   353,   354,     0,     0,
     356,   357,   725,   358,  1833,     0,   360,  1322,   362,   363,
     364,     0,   365,     0,     0,   366,   367,   368,     0,     0,
       0,   726,   727,   728,     0,   371,   372,   373,   374,   375,
     376,   377,     0,   378,     0,   380,     0,   382,   383,   384,
       0,   385,   386,   387,   388,   389,   390,   391,  1323,   393,
     394,   395,   396,     0,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     0,   407,   408,   729,   409,   410,
       0,   412,   413,   414,   415,   416,   417,   418,   419,     0,
     420,   421,   422,   423,   424,     0,   425,  1844,   427,   428,
     730,   429,  1325,     0,   431,   432,   433,   434,   435,   436,
     437,   438,   439,   440,     0,     0,   442,   443,  3175,   444,
     445,   446,   447,   448,   449,     0,  1326,  1327,     0,     0,
     452,     0,   454,     0,     0,   456,   457,   458,   459,   460,
     461,     0,     0,   462,   463,   464,   465,   466,     0,     0,
     467,   468,   469,   470,   471,     0,  1328,     0,   474,   731,
     475,   476,   477,     0,     0,   478,     0,     0,   479,   480,
     481,   482,   483,     0,   199,     0,     0,     0,     0,     0,
       0,     0,   493,   494,   495,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,     0,
     216,   217,   218,   219,   220,     0,   221,   222,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,   230,   231,
     232,     0,   233,   234,   235,   236,   237,     0,   238,     0,
     239,   240,   241,   242,     0,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,     0,   251,   252,     0,     0,
       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
     258,   259,   260,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     273,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,   285,   286,   287,   288,   289,
       0,   290,     0,   291,   292,   293,     0,   294,     0,   295,
       0,     0,     0,   296,   297,   298,     0,   299,   300,     0,
     301,     0,   302,   303,   304,   305,   306,     0,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
       0,   317,   318,   319,   320,   321,   322,   323,     0,   324,
       0,   325,     0,     0,   326,     0,   327,   328,   329,   330,
     331,   332,   333,     0,   334,     0,   335,     0,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,     0,   352,   353,
     354,   355,     0,   356,   357,     0,   358,     0,   359,   360,
     361,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,   369,     0,     0,     0,   370,   371,   372,
     373,   374,     0,   376,   377,     0,   378,   379,   380,   381,
     382,   383,   384,     0,   385,   386,   387,   388,   389,     0,
     391,   392,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
       0,   409,   410,   411,     0,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
     426,   427,   428,     0,   429,   430,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,   441,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,   450,
     451,     0,     0,   452,   453,   454,   455,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,   472,   473,
       0,   474,     0,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,   484,   485,   486,   487,
     488,   489,   490,   491,   492,   493,   494,   495,  1308,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
     201,   202,   203,   204,   205,   206,   207,     0,   209,   210,
     211,     0,     0,     0,     0,     0,     0,     0,   212,   213,
       0,   214,   215,   710,   216,   217,   218,     0,  1309,   711,
    1310,  1311,     0,   223,   224,   225,   226,   227,     0,     0,
     228,   229,  1312,  1313,   232,     0,   233,   234,   235,   236,
       0,     0,   238,     0,   239,   240,   241,   242,   712,   243,
     244,     0,   245,   246,   247,   248,   249,   250,     0,   713,
     251,   252,     0,     0,     0,   714,     0,     0,     0,   253,
     254,   255,   256,   257,   258,  1314,  1315,   261,     0,   262,
       0,   263,   264,   265,   266,   267,     0,   268,   269,   270,
       0,     0,   271,   272,   995,   274,   275,     0,   276,   277,
     278,     0,   279,   280,     0,   281,   282,   283,   284,     0,
     286,   287,   288,     0,     0,   290,     0,   291,  1316,   293,
       0,   294,     0,   295,   715,     0,   716,   296,   297,   298,
       0,   299,     0,     0,   301,     0,   302,   303,   304,   305,
     306,   717,   307,   308,   309,     0,   310,   311,   312,   313,
     314,   315,     0,   316,   718,     0,   318,   319,   320,   321,
    1317,  1318,     0,  1319,     0,   325,   719,   720,   326,   721,
     327,   328,   329,   330,   331,   332,   333,     0,     0,   722,
     335,   723,     0,   336,   337,   338,     0,     0,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
    1320,   724,  1321,   353,   354,  1891,     0,   356,   357,   725,
     358,     0,     0,   360,  1322,   362,   363,   364,     0,   365,
       0,     0,   366,   367,   368,     0,     0,     0,   726,   727,
     728,     0,   371,   372,   373,   374,   375,   376,   377,     0,
     378,     0,   380,     0,   382,   383,   384,     0,   385,   386,
     387,   388,   389,   390,   391,  1323,   393,   394,   395,   396,
       0,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,     0,   407,   408,   729,   409,   410,     0,   412,   413,
     414,   415,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,     0,   425,  1324,   427,   428,   730,   429,  1325,
       0,   431,   432,   433,   434,   435,   436,   437,   438,   439,
     440,     0,     0,   442,   443,     0,   444,   445,   446,   447,
     448,   449,     0,  1326,  1327,     0,     0,   452,     0,   454,
       0,     0,   456,   457,   458,   459,   460,   461,     0,     0,
     462,   463,   464,   465,   466,     0,     0,   467,   468,   469,
     470,   471,     0,  1328,     0,   474,   731,   475,   476,   477,
       0,     0,   478,     0,     0,   479,   480,   481,   482,   483,
       0,  1308,     0,     0,     0,     0,     0,     0,     0,   493,
     494,   495,   200,   201,   202,   203,   204,   205,   206,   207,
       0,   209,   210,   211,     0,     0,     0,     0,     0,     0,
       0,   212,   213,     0,   214,   215,   710,   216,   217,   218,
       0,  1309,   711,  1310,  1311,     0,   223,   224,   225,   226,
     227,     0,     0,   228,   229,  1312,  1313,   232,     0,   233,
     234,   235,   236,     0,     0,   238,     0,   239,   240,   241,
     242,   712,   243,   244,     0,   245,   246,   247,   248,   249,
     250,     0,   713,   251,   252,     0,     0,     0,   714,     0,
       0,     0,   253,   254,   255,   256,   257,   258,  1314,  1315,
     261,     0,   262,     0,   263,   264,   265,   266,   267,     0,
     268,   269,   270,     0,     0,   271,   272,   995,   274,   275,
       0,   276,   277,   278,     0,   279,   280,     0,   281,   282,
     283,   284,     0,   286,   287,   288,     0,     0,   290,     0,
     291,  1316,   293,     0,   294,     0,   295,   715,     0,   716,
     296,   297,   298,     0,   299,     0,     0,   301,     0,   302,
     303,   304,   305,   306,   717,   307,   308,   309,     0,   310,
     311,   312,   313,   314,   315,     0,   316,   718,     0,   318,
     319,   320,   321,  1317,  1318,     0,  1319,     0,   325,   719,
     720,   326,   721,   327,   328,   329,   330,   331,   332,   333,
       0,     0,   722,   335,   723,     0,   336,   337,   338,     0,
       0,   339,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,   350,  1320,   724,  1321,   353,   354,  3000,     0,
     356,   357,   725,   358,     0,     0,   360,  1322,   362,   363,
     364,     0,   365,     0,     0,   366,   367,   368,     0,     0,
       0,   726,   727,   728,     0,   371,   372,   373,   374,   375,
     376,   377,     0,   378,     0,   380,     0,   382,   383,   384,
       0,   385,   386,   387,   388,   389,   390,   391,  1323,   393,
     394,   395,   396,     0,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     0,   407,   408,   729,   409,   410,
       0,   412,   413,   414,   415,   416,   417,   418,   419,     0,
     420,   421,   422,   423,   424,     0,   425,  1324,   427,   428,
     730,   429,  1325,     0,   431,   432,   433,   434,   435,   436,
     437,   438,   439,   440,     0,     0,   442,   443,     0,   444,
     445,   446,   447,   448,   449,     0,  1326,  1327,     0,     0,
     452,     0,   454,     0,     0,   456,   457,   458,   459,   460,
     461,     0,     0,   462,   463,   464,   465,   466,     0,     0,
     467,   468,   469,   470,   471,     0,  1328,     0,   474,   731,
     475,   476,   477,     0,     0,   478,     0,     0,   479,   480,
     481,   482,   483,     0,  1308,     0,     0,     0,     0,     0,
       0,     0,   493,   494,   495,   200,   201,   202,   203,   204,
     205,   206,   207,     0,   209,   210,   211,     0,     0,     0,
       0,     0,     0,     0,   212,   213,     0,   214,   215,   710,
     216,   217,   218,     0,  1309,   711,  1310,  1311,     0,   223,
     224,   225,   226,   227,     0,     0,   228,   229,  1312,  1313,
     232,     0,   233,   234,   235,   236,     0,     0,   238,     0,
     239,   240,   241,   242,   712,   243,   244,     0,   245,   246,
     247,   248,   249,   250,     0,   713,   251,   252,     0,     0,
       0,   714,     0,     0,     0,   253,   254,   255,   256,   257,
     258,  1314,  1315,   261,     0,   262,     0,   263,   264,   265,
     266,   267,     0,   268,   269,   270,     0,     0,   271,   272,
     995,   274,   275,     0,   276,   277,   278,     0,   279,   280,
       0,   281,   282,   283,   284,     0,   286,   287,   288,     0,
       0,   290,     0,   291,  1316,   293,     0,   294,     0,   295,
     715,     0,   716,   296,   297,   298,     0,   299,     0,     0,
     301,     0,   302,   303,   304,   305,   306,   717,   307,   308,
     309,     0,   310,   311,   312,   313,   314,   315,     0,   316,
     718,     0,   318,   319,   320,   321,  1317,  1318,     0,  1319,
       0,   325,   719,   720,   326,   721,   327,   328,   329,   330,
     331,   332,   333,     0,     0,   722,   335,   723,     0,   336,
     337,   338,     0,     0,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,  1320,   724,  1321,   353,
     354,     0,     0,   356,   357,   725,   358,     0,     0,   360,
    1322,   362,   363,   364,     0,   365,     0,     0,   366,   367,
     368,     0,     0,     0,   726,   727,   728,     0,   371,   372,
     373,   374,   375,   376,   377,     0,   378,     0,   380,     0,
     382,   383,   384,     0,   385,   386,   387,   388,   389,   390,
     391,  1323,   393,   394,   395,   396,     0,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,     0,   407,   408,
     729,   409,   410,     0,   412,   413,   414,   415,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,     0,   425,
    1324,   427,   428,   730,   429,  1325,     0,   431,   432,   433,
     434,   435,   436,   437,   438,   439,   440,     0,     0,   442,
     443,     0,   444,   445,   446,   447,   448,   449,     0,  1326,
    1327,     0,     0,   452,     0,   454,     0,     0,   456,   457,
     458,   459,   460,   461,     0,     0,   462,   463,   464,   465,
     466,     0,     0,   467,   468,   469,   470,   471,     0,  1328,
       0,   474,   731,   475,   476,   477,     0,     0,   478,     0,
       0,   479,   480,   481,   482,   483,     0,  1308,     0,     0,
       0,     0,     0,     0,     0,   493,   494,   495,   200,   201,
     202,   203,   204,   205,   206,   207,     0,   209,   210,   211,
       0,     0,     0,     0,     0,     0,     0,   212,   213,     0,
     214,   215,   710,   216,   217,   218,     0,  1309,   711,  1310,
    1311,     0,   223,   224,   225,   226,   227,     0,     0,   228,
     229,  1312,  1313,   232,     0,   233,   234,   235,   236,     0,
       0,   238,     0,   239,   240,   241,   242,   712,   243,   244,
       0,   245,   246,   247,   248,   249,   250,     0,   713,   251,
     252,     0,     0,     0,   714,     0,     0,     0,   253,   254,
     255,   256,   257,   258,  1314,  1315,   261,     0,   262,     0,
     263,   264,   265,   266,   267,     0,   268,   269,   270,     0,
       0,   271,   272,   995,   274,   275,     0,   276,   277,   278,
       0,   279,   280,     0,   281,   282,   283,   284,     0,   286,
     287,   288,     0,     0,   290,     0,   291,  1316,   293,     0,
     294,     0,   295,   715,     0,   716,   296,   297,   298,     0,
     299,     0,     0,   301,     0,   302,   303,   304,   305,   306,
     717,   307,   308,   309,     0,   310,   311,   312,   313,   314,
     315,     0,   316,   718,     0,   318,   319,   320,   321,  1317,
    1318,     0,  1319,     0,   325,   719,   720,   326,   721,   327,
     328,   329,   330,   331,   332,   333,     0,     0,   722,   335,
     723,     0,   336,   337,   338,     0,     0,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,   350,  1320,
     724,  1321,   353,   354,     0,     0,   356,   357,   725,   358,
       0,     0,   360,  1322,   362,   363,   364,     0,   365,     0,
       0,   366,   367,   368,     0,     0,     0,   726,   727,   728,
       0,   371,   372,   373,   374,   375,   376,   377,     0,   378,
       0,   380,     0,   382,   383,   384,     0,   385,   386,   387,
     388,   389,   390,   391,  1323,   393,   394,   395,   396,     0,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       0,   407,   408,   729,   409,   410,     0,   412,   413,   414,
     415,   416,   417,   418,   419,     0,   420,   421,   422,   423,
     424,     0,   425,  1844,   427,   428,   730,   429,  1325,     0,
     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
       0,     0,   442,   443,     0,   444,   445,   446,   447,   448,
     449,     0,  1326,  1327,     0,     0,   452,     0,   454,     0,
       0,   456,   457,   458,   459,   460,   461,     0,     0,   462,
     463,   464,   465,   466,     0,     0,   467,   468,   469,   470,
     471,     0,  1328,     0,   474,   731,   475,   476,   477,     0,
       0,   478,     0,     0,   479,   480,   481,   482,   483,     0,
    1308,     0,     0,     0,     0,     0,     0,     0,   493,   494,
     495,   200,   201,   202,   203,   204,   205,   206,   207,     0,
     209,   210,   211,     0,     0,     0,     0,     0,     0,     0,
     212,   213,     0,   214,   215,   710,   216,   217,   218,     0,
    1309,   711,  1310,  1311,     0,   223,   224,   225,   226,   227,
       0,     0,   228,   229,  1312,  1313,   232,     0,   233,   234,
     235,   236,     0,     0,   238,     0,   239,   240,   241,   242,
     712,   243,   244,     0,   245,   246,   247,   248,   249,   250,
       0,   713,   251,   252,     0,     0,     0,   714,     0,     0,
       0,   253,   254,   255,   256,   257,   258,  1314,  1315,   261,
       0,   262,     0,   263,   264,   265,   266,   267,     0,   268,
     269,   270,     0,     0,   271,   272,   995,   274,   275,     0,
     276,   277,   278,     0,   279,   280,     0,   281,   282,   283,
     284,     0,   286,   287,   288,     0,     0,   290,     0,   291,
    1316,   293,     0,   294,     0,   295,   715,     0,   716,   296,
     297,   298,     0,   299,     0,     0,   301,     0,   302,   303,
     304,   305,   306,   717,   307,   308,   309,     0,   310,   311,
     312,   313,   314,   315,     0,   316,   718,     0,   318,   319,
     320,   321,  1317,  1318,     0,  1319,     0,   325,   719,   720,
     326,   721,   327,   328,   329,   330,   331,   332,   333,     0,
       0,   722,   335,   723,     0,   336,   337,   338,     0,     0,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,  1320,   724,  1321,   353,   354,     0,     0,   356,
     357,   725,   358,     0,     0,   360,  1322,   362,   363,   364,
       0,   365,     0,     0,   366,   367,   368,     0,     0,     0,
     726,   727,   728,     0,   371,   372,   373,   374,   375,   376,
     377,     0,   378,     0,   380,     0,   382,   383,   384,     0,
     385,   386,   387,   388,   389,   390,   391,  1323,   393,   394,
     395,   396,     0,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,     0,   407,   408,   729,   409,   410,     0,
     412,   413,   414,   415,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,     0,   425,     0,   427,   428,   730,
     429,  1325,     0,   431,   432,   433,   434,   435,   436,   437,
     438,   439,   440,     0,     0,   442,   443,     0,   444,   445,
     446,   447,   448,   449,     0,  1326,  1327,     0,     0,   452,
       0,   454,     0,     0,   456,   457,   458,   459,   460,   461,
       0,     0,   462,   463,   464,   465,   466,     0,     0,   467,
     468,   469,   470,   471,     0,  1328,     0,   474,   731,   475,
     476,   477,     0,     0,   478,     0,     0,   479,   480,   481,
     482,   483,     0,  1308,     0,     0,     0,     0,     0,     0,
       0,   493,   494,   495,   200,   201,   202,   203,   204,   205,
     206,   207,     0,   209,   210,   211,     0,     0,     0,     0,
       0,     0,     0,   212,   213,     0,   214,   215,   710,   216,
     217,   218,     0,     0,   711,     0,     0,     0,   223,   224,
     225,   226,   227,     0,     0,   228,   229,     0,     0,   232,
       0,   233,   234,   235,   236,     0,     0,   238,     0,   239,
     240,   241,   242,   712,   243,   244,     0,   245,   246,   247,
     248,   249,   250,     0,   713,   251,   252,     0,     0,     0,
     714,     0,     0,     0,   253,   254,   255,   256,   257,   258,
       0,     0,   261,     0,   262,     0,   263,   264,   265,   266,
     267,     0,   268,   269,   270,     0,     0,   271,   272,   273,
     274,   275,     0,   276,   277,   278,     0,   279,   280,     0,
     281,   282,   283,   284,     0,   286,   287,   288,     0,     0,
     290,     0,   291,     0,   293,     0,   294,     0,   295,   715,
       0,   716,   296,   297,   298,     0,   299,     0,     0,   301,
       0,   302,   303,   304,   305,   306,   717,   307,   308,   309,
       0,   310,   311,   312,   313,   314,   315,     0,   316,   718,
       0,   318,   319,   320,   321,     0,     0,     0,     0,     0,
     325,   719,   720,   326,   721,   327,   328,   329,   330,   331,
     332,   333,     0,     0,   722,   335,   723,     0,   336,   337,
     338,     0,     0,   339,   340,   341,   342,   343,   344,   345,
     346,   347,   348,   349,   350,     0,   724,     0,   353,   354,
       0,     0,   356,   357,   725,   358,     0,     0,   360,     0,
     362,   363,   364,     0,   365,     0,     0,   366,   367,   368,
       0,     0,     0,   726,   727,   728,     0,   371,   372,   373,
     374,   375,   376,   377,     0,   378,     0,   380,     0,   382,
     383,   384,     0,   385,   386,   387,   388,   389,   390,   391,
       0,   393,   394,   395,   396,     0,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     0,   407,   408,   729,
     409,   410,     0,   412,   413,   414,   415,   416,   417,   418,
     419,     0,   420,   421,   422,   423,   424,     0,   425,     0,
     427,   428,   730,   429,     0,     0,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,     0,     0,   442,   443,
       0,   444,   445,   446,   447,   448,   449,     0,     0,     0,
       0,     0,   452,     0,   454,     0,     0,   456,   457,   458,
     459,   460,   461,     0,     0,   462,   463,   464,   465,   466,
       0,     0,   467,   468,   469,   470,   471,     0,     0,     0,
     474,   731,   475,   476,   477,     0,     0,   478,     0,     0,
     479,   480,   481,   482,   483,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   493,   494,   495
};

static const yytype_int16 yycheck[] =
{
       0,     0,     0,     0,     0,     0,    47,    16,   164,   522,
     880,    11,    33,   172,   703,    24,   657,   708,  1207,   184,
      20,   180,    20,   916,   563,   939,   616,   617,   567,    42,
    1190,   621,    21,   887,  1162,   952,   733,    26,   577,   181,
     774,  1432,  1098,   789,   186,  1470,    21,    47,    12,   842,
     771,    26,   565,   195,  1096,   993,   994,  1568,   851,  1324,
     781,  1096,  1251,  1252,     7,  1890,  1194,  1022,  1194,  1281,
     824,    14,   664,   965,  1012,  2150,  2450,  1341,   173,   174,
     754,    20,   177,   178,   514,  1096,  2423,    41,   549,  1145,
    1377,  1362,    22,  1849,  1850,  1362,  2682,  2203,  2204,   194,
    2298,  1362,  2208,    33,    17,  1362,  1362,  1149,   829,  1190,
    2470,   832,  2472,  1362,  1149,  1505,   837,   871,   907,  1933,
    2888,  1119,  1728,   844,  2353,  2603,  2130,   166,   558,  2585,
    2302,   166,   853,   151,  2922,  3154,  2929,   584,  1149,  3176,
    1240,  1428,  2248,  2249,  2300,  2301,     0,  2603,  2346,     0,
    2237,  3116,  3129,  1198,     0,  2856,  2861,  2862,     0,     0,
    1149,  2900,    38,  3376,   740,  3551,   166,   700,   749,  2304,
     700,  3148,  2794,    31,  1386,  2607,  2608,  2609,  2610,  2611,
    2612,     9,     5,     5,    11,    44,    18,     5,    58,     0,
      51,  2016,  1977,     5,    79,     5,    25,  3773,     0,   660,
      66,  1246,    51,     0,    37,   781,    51,   103,   127,   182,
       0,    37,  3793,     0,    35,   188,    35,     0,    22,   150,
       5,    68,     9,   196,    22,    29,    18,   150,    13,   110,
     105,    29,   822,   133,    22,    22,   190,  3682,     5,     5,
       0,   151,   916,    96,   189,    60,    13,  3786,    58,     9,
       5,  1040,   170,     5,  2079,     5,  2081,   120,   983,   984,
      22,    13,    22,    72,   159,     5,  2425,    29,   145,   773,
       5,   775,  2359,     5,   241,     5,   132,   132,   782,    68,
    3744,   150,    70,  1008,     5,     5,  3079,     5,   120,    77,
     150,   153,   241,    83,   807,   274,    42,     0,     3,     4,
       5,     9,  1344,    58,     9,    11,   150,     4,   122,  1344,
     103,    64,     9,   108,    96,   130,   104,   302,   251,   105,
     249,   246,    32,   229,     5,   350,   103,   105,   120,   258,
      36,   218,   147,  1344,   229,     5,    51,  1083,     5,   150,
     141,   191,   318,     5,   300,   289,     4,   312,   150,   888,
     509,     9,  3928,   150,     9,   410,  4087,   522,   350,   170,
      66,    11,   106,   150,   302,   155,   258,   150,   170,  1066,
     425,  1538,  1327,   170,   318,   340,  1314,  1315,   520,     5,
      83,   245,   524,   170,  1322,  1552,   174,   170,   183,  1814,
     150,  3777,   421,   535,   553,   245,   425,   289,   103,   108,
     565,   111,   427,   562,    11,   944,   207,   193,  1082,   294,
     170,   311,  1086,  1087,   370,   954,  3381,   512,   383,  1289,
     166,   516,   309,   167,   170,  4156,   318,   966,  3892,    36,
     293,   369,  1599,   103,   295,   427,   103,   532,   423,  1293,
     340,   103,   903,   236,   423,   231,   295,   229,  1504,   425,
     295,   313,   155,   382,   231,   318,   423,   272,   236,    66,
     206,  2620,   197,   292,   320,   320,   258,    96,   393,   375,
     236,   918,    26,    27,   423,   304,   156,   377,    30,   341,
     375,   350,   427,   188,  2916,  4024,   236,   340,   150,   389,
     371,   244,    22,   279,   427,   504,   427,   289,   373,  4075,
     423,  1175,  4078,   350,   423,   210,   296,  1181,   969,   427,
    2988,  1245,  1305,   423,   410,  1236,   337,  1238,   337,   331,
     332,   325,   826,   423,   350,   354,   318,   325,  3973,   502,
    1284,  1573,  2988,  1279,   507,  3554,  4117,   369,  1573,  4115,
     549,   550,   427,   376,   585,   333,   423,   703,  1462,   364,
    1606,   103,   361,   423,  1228,   421,  3521,  1231,  1232,   425,
    2385,   350,  1573,   325,   423,   423,   427,   427,     5,   587,
     380,   385,   390,   254,   369,  1114,   322,  3370,   427,  1844,
     295,  1302,   427,   427,   584,   585,   584,  1312,  1313,  1853,
     503,   409,   419,   296,   422,   149,  1321,   151,   421,   389,
     423,   423,   425,  1136,  3569,   423,  1136,   596,  1189,   598,
    3311,   600,  3234,   423,  3315,   426,  1290,   606,  1079,   583,
     629,   596,  3361,   598,   426,   600,   894,   414,   415,   426,
    4016,   606,   607,   608,   424,   794,   426,   905,   423,   426,
     649,   427,   807,   426,  3857,   804,   585,   656,   952,  1225,
     659,   660,   661,   692,   414,   415,   423,   692,  2856,   380,
     369,   756,   757,   636,    96,  3097,   426,   610,   423,  1173,
    2776,   423,   626,  2779,  2780,  2781,  2782,  2783,  2784,  2785,
    2786,  2787,  2788,   423,   657,  2441,   389,  2443,   350,  1849,
    4076,   423,   692,   423,   694,   694,   694,   694,   694,   694,
     859,   674,   423,   423,  2876,   423,   414,   415,  1221,   414,
     415,   340,  3677,   419,  1503,   423,  1505,   414,   415,  3684,
      96,   424,   695,   426,   678,   820,  1515,   103,  2926,  1518,
    1856,   389,  2838,  2839,  1776,   265,  2871,  1526,  1527,  2564,
    2565,  1776,   150,   682,    16,   840,   841,   427,   410,   108,
    1539,  1540,   103,   707,    18,    60,   414,   415,    96,   414,
     415,  1550,   857,   425,   390,  1776,   416,   417,   418,   419,
      96,    76,   381,   159,  2559,    18,    96,  2562,  2563,   754,
    1825,  2566,   658,   409,  3761,     5,   662,  1776,    74,   884,
     885,  2576,    60,  1383,   748,    18,  3685,   423,    23,   236,
     158,    24,  2313,   258,   144,  1530,  1531,    51,   129,   416,
     417,   418,   419,   343,   823,   345,   389,  2904,   152,   241,
     352,    95,   159,    11,   183,   130,   112,   381,    98,  2585,
    3649,   150,  3651,  1474,  1475,   103,   142,  1879,    98,  1143,
     694,  1876,   147,   694,  1879,    83,   279,  2603,   694,  3186,
      97,   229,   694,   694,   427,   231,   120,     5,   410,   391,
     132,   834,  3751,   318,    18,  1876,   187,  1406,  1879,   421,
      24,   423,   424,   425,   106,   427,  1415,   120,    66,   131,
     231,   854,   855,   856,    34,   389,  2012,   320,  1427,   244,
     108,    11,   229,   163,   903,  3914,    52,   120,   306,  1412,
    2060,  3938,   340,   163,    60,  3865,  3866,   916,   340,   163,
     152,     8,    22,   247,    11,  1219,    36,   155,   918,   171,
     918,   258,   228,   427,  2680,    44,   173,   267,  3905,  1468,
     251,  3636,  1471,    74,  1473,   167,   369,  1476,   153,  3640,
     949,   916,   300,   217,  3645,   219,    66,  3648,   218,   862,
    2050,   221,   311,  3746,   330,   306,   251,   333,   218,   184,
     969,   221,   152,   231,   218,   183,   120,   272,   236,  3858,
     943,   112,  1402,   259,   382,    94,   251,   977,   921,  3868,
     923,  1285,   925,  3569,   927,   229,   929,   930,   931,   375,
      11,  1438,   965,   936,     8,   315,   996,    11,  4017,  1040,
    1304,   423,   340,  3109,   272,   115,   598,   599,   600,    11,
     369,   603,   604,   605,   340,   258,   236,   285,  3837,   169,
       8,   613,    36,  1536,   154,   289,  1026,   405,    42,   151,
     302,   350,   196,  1042,    36,   258,  2203,  2204,   375,   309,
    1040,  2208,   363,  1052,   145,  1349,   257,   423,   320,   309,
      83,   295,    66,  1062,   210,   309,  1221,   247,   344,   364,
    4025,  1999,   304,   182,    66,    74,   289,  3855,   423,   102,
    1079,   191,   192,  1082,   318,   318,  3869,  1086,  1087,    22,
     210,  2248,  2249,  1122,  1123,  4045,  1125,  1122,  1123,  1107,
    1125,   410,   339,   340,   191,   318,   364,  1401,   313,   105,
     133,   106,    74,   112,   258,   103,   425,  1082,  1203,   245,
     229,  1086,  1087,  3311,   234,   159,   358,  3315,   259,  1092,
       5,    76,  1122,  1123,  1266,  1125,   341,    20,  1396,   424,
    3359,   320,   427,  3834,   404,   289,  1929,  1405,   260,   357,
     112,    74,   105,   333,   404,  1413,  1414,    40,   103,   424,
     247,   369,   427,   423,   291,   371,   170,  3329,  1253,  1254,
    1255,  1256,   167,  1431,   318,  3525,  1139,    18,  3324,  3341,
     191,   177,   115,    24,  2438,  3281,  3282,   191,   192,   112,
     369,  2445,   145,   105,  1138,   229,  2228,  3980,   307,   191,
     291,   293,  2234,  2228,   107,   352,  1291,  1292,  3333,  2234,
    1175,   323,  1297,   344,  2074,   249,  1181,   423,  3343,  3977,
    3978,   423,  3216,   343,   177,   345,   318,  2228,   103,  1361,
     234,   312,   141,  2234,  3702,   231,   170,  1200,  2082,   115,
    1904,   117,  2988,   247,  1243,  1377,  1395,   367,  1912,  1214,
    1914,  2034,  2035,  2036,  2037,  1404,  3702,  1412,  1343,   340,
     259,   304,   389,  1228,  4047,  3040,  1231,  1232,  1171,   247,
     371,  3046,  3047,  3048,  3049,  3050,  3051,  1571,   231,   120,
     107,   193,  1367,  1368,  1369,  1370,   231,   190,   311,   304,
    2440,   154,    57,    58,  1257,   421,  1428,   259,   207,   425,
     427,   184,   383,  2718,   414,   415,   416,   417,   418,   419,
       8,   354,  1815,    11,   251,  2911,   231,   340,   258,   231,
    1283,  1470,   423,   311,  2068,  1290,  1855,   414,   415,   416,
     417,   418,   419,  2321,   243,    78,   259,   919,  4096,   354,
     922,   375,   924,  3147,   926,   344,   928,   210,  1433,   289,
     932,   418,   340,  4136,   377,   289,   423,   258,   425,   293,
    1898,  1781,   277,   190,  1363,   241,   389,   279,     5,  2440,
    2750,   308,     9,   108,   117,   271,  2637,  3192,   318,  3194,
    2637,  1536,   344,   342,   318,   120,  2637,   271,   289,   377,
    2637,  2637,   293,   304,  2173,  2771,    11,   258,  2637,   390,
     423,   389,     0,   414,   415,   416,   417,   418,   419,  1947,
     414,   415,   416,   417,   418,   419,   152,   318,   409,  2795,
     389,   344,   414,   415,   416,   417,   418,   419,   289,  2706,
     389,   390,   410,   411,   412,   423,   414,   415,   416,   417,
     418,   419,  2221,   354,   180,  2470,  2471,  2472,  1438,  4025,
    1438,     3,  3640,     5,  1417,   389,   352,  3645,   427,  2123,
    3648,  3699,   145,  1426,   423,  1723,   103,  3794,   352,  2470,
    2471,  2472,   155,  2252,  1437,   258,  1896,   115,   306,   117,
     343,   427,   345,   423,  3722,  1496,  2390,   170,   389,  2668,
    3678,  1576,   141,   191,   258,   391,   145,  1487,  1487,  1487,
    1487,  1487,  1487,  3599,   367,   258,   289,   391,  2287,   390,
    1439,  1474,  1475,     8,   342,  1448,    11,  1450,  2446,  1452,
     383,  1454,  3587,  1456,  1523,   289,   426,  1460,   409,  3625,
    3626,  3656,  3657,     3,   269,   318,   289,   274,  1482,    60,
      95,    36,   423,   240,   151,    66,    98,    42,   150,   247,
    2582,  1516,  1517,  3917,  3904,    76,   308,  2582,   207,  1524,
     350,   389,   390,  1528,  1529,   318,  1860,  2411,   170,   302,
    2602,    66,   179,  3388,  3389,  1495,   191,  2602,  1543,   289,
    1545,  2582,   103,   293,   105,   141,     4,   194,  1578,   145,
    2119,     9,  3093,   231,   243,   423,   329,   204,  3786,  1502,
    1565,  2602,  1567,   241,   289,    75,   279,  3672,   318,  3674,
     278,   163,  2063,   389,   390,   298,  3943,   290,   258,  2776,
     175,  1620,  2779,  2780,  2781,  2782,  2783,  2784,  2785,  2786,
    2787,  2788,   371,   318,   115,   303,   117,   245,  1601,   197,
    1772,   314,   250,    11,  2095,  1777,  3834,  1610,  1780,   289,
    2314,   207,  2809,   293,   423,   125,   177,  2401,   139,  1808,
    1815,   115,   217,   117,   219,  1814,   218,   390,    36,   221,
    1802,   166,   311,   258,    38,   170,   354,   424,   318,   389,
     427,  2838,  2839,   145,   423,   139,   409,   243,  3463,  3464,
     291,  1360,   299,  1987,  2948,    59,   191,   192,    66,  1831,
     423,   340,  2426,   165,   289,   175,  2337,   302,   303,  1378,
     231,   206,  3808,   411,   412,   236,   414,   415,   416,   417,
     418,   419,  1854,    68,  3849,  1810,  1811,  1812,  2930,  2311,
       5,    76,  1817,   318,  1819,    10,  1821,  1822,   377,   234,
     308,   418,  2646,    18,    80,  1877,   423,    20,   425,   145,
     231,   272,   247,   422,   343,   236,   345,   309,   427,    34,
     241,  1724,  1741,  1726,   285,  1897,  2269,    40,  1900,   165,
     302,   303,  2818,  1763,  1763,  1786,  1741,  1788,  3279,  2811,
     424,   173,   236,   427,   423,  1917,  2811,   241,  2967,  2968,
     306,    48,  1924,   263,   311,   306,  1725,   423,    84,   414,
     415,   416,   417,   418,   419,  1937,  3059,   343,  3061,   345,
    2811,  3064,   422,  3066,  1946,  2073,     8,   427,   421,    11,
     423,    32,   425,   340,     3,  1910,   342,   322,    39,  2087,
    2088,   342,     8,  2091,   165,    11,  4024,   245,  1837,  2097,
      19,   424,   250,   364,   427,   308,  2140,     8,  2377,  2378,
      11,  2380,   404,  2798,  2799,  2737,  2220,    21,  2222,  2223,
     377,     8,    26,     9,    11,   151,  2912,    28,  3588,  3589,
    3590,  3591,   389,   389,   390,   356,    75,  1962,   389,   390,
     421,    28,   423,  2743,   365,  1970,  1971,  1972,  1973,  1974,
    1975,   306,   362,   179,  2152,   197,    75,    26,    27,   423,
     370,   425,   356,   373,  2615,   423,   423,   423,   194,    48,
    1873,   365,   423,   427,   129,   410,   411,   412,   204,   414,
     415,   416,   417,   418,   419,   124,   141,   342,   424,  2836,
     145,   427,   232,   233,   424,  1934,   423,   427,   424,  1904,
     226,   427,   424,  3758,   245,   427,   125,  1912,  2399,  1914,
    3725,   423,  3109,   425,    83,  2987,  3702,  2989,  2983,   245,
     424,   233,  2987,   427,  2989,  2594,  2595,  2596,  2053,   129,
    1969,    38,   187,   102,   389,   390,   406,  2506,  1977,  4044,
     424,   141,  2983,   427,   424,   145,  2987,   427,  2989,   389,
     390,   170,   207,  2078,   170,  2080,   175,  2741,   193,   191,
     424,   200,   201,   427,   133,  2154,   425,   424,   423,  2158,
     427,   311,  3128,   299,   213,   191,   343,   424,   345,  3169,
     427,  3276,   424,  2927,  2928,   427,  2805,   187,   243,   245,
     191,  1996,  2960,   350,  2033,  3153,   251,   145,    76,   311,
     340,   248,  3788,   424,   191,   248,   427,   207,     8,   424,
     424,    11,   427,   427,  2017,   247,  2636,   424,  2057,   258,
     427,   245,  2052,  2052,  2063,   406,  2020,   424,   340,   424,
     427,   247,   427,   407,   408,   424,    36,   377,   427,   248,
    2744,  2166,    42,   243,   263,   371,   247,   424,    38,   389,
     427,   251,   424,   406,   424,   427,  2095,   427,   193,  2628,
     247,  2630,   956,   957,   424,   377,    66,   427,  2402,     8,
     424,   416,    11,   427,  2269,   424,   154,   389,   427,     8,
     149,   300,    11,   423,  3281,  3282,   389,   390,   424,    28,
       8,   427,   427,    11,  2392,   173,   424,   424,   423,   427,
     427,   424,  2878,   342,   427,   344,   424,    36,   363,  2298,
      28,   423,   424,    42,   426,  2338,  2339,   424,  2123,   338,
     427,  2307,  3663,   424,   424,  2616,   427,  2618,   128,    48,
     150,   424,   210,  3056,   427,   189,  2331,    66,  2865,   423,
     425,   424,   311,   362,   427,   424,   318,  2716,   427,  2868,
    2869,   370,   424,   424,   373,   427,   427,  2346,   392,  2493,
    2458,  2495,  2460,   363,   425,   424,   166,  2736,   427,   424,
     170,   340,   250,   343,   424,   345,   145,   427,   410,   411,
     412,  2252,   414,   415,   416,   417,   418,   419,  2679,   245,
    2362,   191,   192,   423,   410,   411,   412,   423,   414,   415,
     416,   417,   418,   419,   424,  2539,   206,   427,   377,   410,
     411,   412,   381,   414,   415,   416,   417,   418,   419,   424,
     389,   426,  2252,   410,   411,   412,  2560,   414,   415,   416,
     417,   418,   419,   205,   234,   424,  2266,   166,   427,  3325,
    2538,   170,   424,    84,   426,  2543,   697,   247,   699,  2292,
    2293,  2294,   191,   424,   423,  2285,   427,   424,   424,   105,
     427,   427,   191,   192,   245,   343,   424,   345,  2298,   427,
    3356,  3035,  3316,   191,  3318,  2314,   354,   206,  2349,   240,
     424,   371,  2407,   427,  2409,  2410,   364,  3742,  2291,   367,
     424,   424,   424,   427,   427,   427,   423,  2327,  2327,  2327,
    2327,  2327,  2327,   424,   308,   234,   427,  2312,   247,  2314,
     151,   424,   424,   197,   427,   427,  2346,  2489,   247,  2349,
     424,   423,   322,   427,  2496,   424,    60,   424,   427,   247,
     427,   389,   424,  2667,  2337,   427,   424,    31,   179,   427,
    3287,   424,   424,   424,   427,   427,   427,     8,   424,   231,
      11,   427,  3056,   194,   392,  3178,   424,  2691,  1554,   427,
    2399,  1557,   423,   204,    38,    38,   359,   258,   145,    73,
     275,   134,   134,   423,   134,    36,   392,   134,  3568,   134,
     427,    42,  2554,   134,    21,   226,   134,   134,   245,   134,
    2585,   134,  2690,   322,   134,   245,  2694,   134,  2696,   134,
    2698,  2699,  3599,  3475,   340,    66,   423,    31,  2603,  2707,
    3475,  3608,   205,   146,   414,   415,   416,   417,   418,   419,
     145,   145,  2756,   245,   423,     5,     5,   423,  3625,  3626,
     268,    68,   423,     5,  3475,   423,   423,  2476,   423,   423,
    2738,  2775,     5,   423,  3263,   423,   423,   423,   423,   423,
     423,     5,   423,   423,     5,   423,   423,   423,   299,  3880,
    3525,  3882,   427,   423,   423,  2504,  2800,   128,   423,   423,
     423,   410,   411,   412,   423,   414,   415,   416,   417,   418,
     419,   118,   411,   412,  3525,   414,   415,   416,   417,   418,
     419,   423,   410,   411,   412,   423,   414,   415,   416,   417,
     418,   419,  2836,   255,  3208,   166,    31,   205,    86,   170,
     147,    31,   145,   243,   145,   152,   318,   350,   350,   306,
    2559,   425,   350,  2562,  2563,   350,   306,  2566,   306,  2718,
     191,   192,   350,     0,  2706,   350,   350,  2576,   245,   310,
     350,  3485,  2581,    49,   350,   206,  2585,   236,   245,  2721,
     350,   370,    68,   175,  3477,   241,   423,   423,   350,   350,
     371,   198,  3131,  3132,  2603,    76,   427,  2739,   826,    97,
     258,   350,   371,   234,   350,   350,    48,  2616,    48,  2618,
    2585,   350,   350,   249,   350,   350,   247,  2592,  2593,    95,
      37,    37,  2597,   306,   350,   245,   427,   350,  2603,   245,
     350,   191,   392,   389,    31,    30,   423,   380,    20,   103,
    2649,  3808,   134,  3771,  1129,   423,    83,   231,   423,  2622,
    2745,   382,   423,   241,   383,   371,  2631,   213,   231,    31,
     145,    31,   197,   134,  3203,  3204,  3205,   307,   275,  2678,
    2679,  2671,  2671,   371,  2647,   134,   134,   134,   371,  3376,
     350,  2654,   240,   423,   235,  2658,  3603,   150,   385,  2689,
    2689,   322,   129,   348,   406,   423,   172,  2856,   223,   306,
    2673,   223,    11,   427,   141,   312,   318,   348,   145,   423,
     352,   350,   423,   150,   150,   424,   164,   164,   155,   427,
     187,   158,   423,   160,   952,   427,   246,  2700,   241,   350,
    2703,   427,   424,   340,   371,   350,   306,    75,   306,   423,
     195,   217,   371,   219,   195,   236,   350,   236,   423,   308,
     187,  3472,   359,   229,   197,   252,   236,   245,   427,   350,
     244,   350,   306,   289,  2737,   350,   191,  2926,   315,  2744,
     207,   350,   279,    31,   371,   371,   383,   191,   191,  3939,
     191,   257,   191,   414,   415,   416,   417,   418,   419,   423,
     244,   410,    30,   421,   421,   350,   350,   350,   423,   410,
     134,   315,   145,   147,   350,  2846,   243,   241,   134,  2951,
     423,   315,    31,  2822,   251,  2856,   245,   245,   294,    31,
     162,   162,  3736,  2988,   145,   245,   134,   245,   315,   145,
     423,  3135,   427,   170,  3347,  2848,  2849,  2850,  2851,   170,
     170,    19,   156,   220,   245,   427,  2846,  2942,  2943,  2944,
    2945,   392,   328,    48,  1082,   240,  2856,   340,   197,   296,
     424,   424,   424,   150,  3653,   150,  2875,   424,   406,  3904,
     262,   350,   424,  3015,   406,   386,  3018,    13,   254,   424,
    2853,  2854,  2855,    13,   424,   424,     8,   424,  4077,    11,
     424,   427,  3809,  3904,   424,   424,   424,   424,  3437,  3438,
     423,  3440,   377,   340,   386,   424,    44,   423,    50,   424,
     296,   410,   207,   245,    36,  1143,   173,   245,   423,   248,
      42,   423,  3190,   392,   350,   181,   363,   134,   134,  3197,
    3198,   236,  3522,   207,   215,   368,   263,   215,   263,   215,
      82,   306,   350,   350,    66,   350,   350,    85,   350,   386,
     306,   388,   389,   306,   350,   306,  3873,   350,   318,   350,
    3877,  3878,  1190,   134,    37,   191,   350,   191,   191,   191,
     191,   109,     3,   191,   191,   421,   309,  3668,   221,  2988,
     424,   249,   207,  3287,   421,   424,   124,   424,   425,   426,
     128,  1219,   359,   291,    96,   137,  3005,  3890,   410,  3008,
     424,  3010,    50,   424,  3874,   427,   128,   244,   146,   389,
     245,   159,  3107,  2988,   350,  3004,   371,   423,   306,  3028,
    3029,  3875,   371,   161,  3813,   132,   168,   427,   427,  3004,
     191,  3040,   248,   306,    82,   306,   132,  3046,  3047,  3048,
    3049,  3050,  3051,   421,   166,   126,   150,  3056,   170,    11,
     145,  3060,    58,  1538,   427,   424,   424,  1285,   424,   382,
     424,   150,   423,   246,   158,   424,   423,  1552,   145,   191,
     192,  4113,   424,    31,   424,   423,  1304,   424,  4113,   424,
     371,  3056,  3386,   350,   206,   371,   350,   359,   181,   137,
    3099,  3100,  3101,  3102,  3069,  3070,  1324,   359,   236,   350,
     350,   306,  4113,  3407,   350,  3080,   244,   306,   145,   424,
      66,   424,   234,   424,    96,  3419,   258,   359,   424,  4161,
     168,  1349,   191,  3096,  3099,   247,  4161,  4169,   191,   422,
     422,   195,    31,   423,  4169,  3776,   389,   392,   427,   277,
    3408,  3409,  3115,   145,   424,   424,   423,   289,   176,    71,
    4161,   293,  3311,  3457,   342,   297,  3315,  3166,  4169,  3848,
     389,   303,   427,   423,   427,  3138,  3679,   155,   310,   350,
     424,   315,   150,  1401,   191,   191,   318,   191,  3967,   191,
     424,   150,  3347,   423,   326,   424,   284,    48,   424,   387,
    3458,  3459,   334,   387,  3707,   427,   424,   194,   253,   194,
     322,    48,   241,   423,   350,   160,    21,   410,   423,   150,
     424,    22,    23,   424,   427,  3224,    27,   389,    66,   359,
      31,    32,    33,   236,    35,   236,   410,    38,    39,   134,
      41,  4101,    43,  3208,   427,   427,   110,   191,   236,    54,
     422,   152,   384,   150,   371,   293,   371,   295,   315,   297,
     121,   385,    67,    96,   389,   303,   423,   150,   423,   178,
     150,   248,   310,   423,   423,    80,   284,   376,   327,   424,
     318,   424,  3414,   423,   194,   388,   423,   261,   326,   424,
     245,   424,   285,   424,  3426,   145,   334,    31,  3827,   389,
     423,   423,   414,   415,   416,   417,   418,   419,  3837,  3603,
     236,   216,   423,   118,   173,  3573,   133,  3575,  3576,   424,
     249,  3311,   303,   303,    60,  3315,   248,    60,  3586,    48,
     423,    48,   251,   342,   423,  3298,  3299,  3300,  3301,   371,
     140,   245,   147,   276,   116,  3344,   384,   152,   248,   248,
     375,   427,   284,  1571,  3439,  3884,   376,  3368,    31,   150,
     386,   282,   145,   427,  3354,  3354,   389,   121,  3453,   245,
     245,   172,   173,   174,   175,    31,   177,   178,   389,   180,
     181,   182,   423,   184,  3363,   186,   423,   188,   424,   190,
     424,    48,   108,   194,   195,   196,   302,    17,  3363,  3979,
     369,   423,    28,   133,   302,   276,   423,   694,  1269,  1087,
    2019,  2451,  2314,  1886,  2987,   751,  1941,  2581,  3728,  3475,
    3890,  3542,     0,  3767,  3157,  3404,  3771,  3515,  3775,  3958,
    2384,  2112,  4051,  3678,  4100,  4008,  3915,  4007,  4065,  3404,
    2388,  3159,   247,  3120,  2010,  2010,  2983,  2471,  1364,  3128,
    3126,  2005,  3417,  3418,  2648,  1379,  3541,  3422,  3423,  4105,
    4169,  4161,  2587,  2602,  3463,  3464,  4072,  3709,  4059,  1356,
     275,  3988,  3975,  3712,    26,  3854,  3211,   945,  3477,  3167,
    1850,  3939,  3481,  3169,  3483,   550,  2541,  3486,  3487,  4083,
    4163,  3640,   673,  3759,  2327,  1725,  3645,  1726,  3355,  3648,
    1439,   306,  2909,  3150,  2328,    83,  3652,   312,  1131,   686,
     315,  1761,  1132,  1113,  2340,  3809,  2334,  1744,  3497,  1760,
    1134,  2346,  2354,  2856,  3679,   678,  3835,  3317,  2910,  3678,
    1138,  1986,  3497,  2821,  3811,   340,  2813,  4038,  4042,  3538,
    4039,   346,  3532,  3532,  3802,  3839,  2331,  3702,  2266,  2264,
    2175,   129,  3707,  2905,   359,  1602,    -1,  3706,    -1,    -1,
      -1,    -1,    -1,   141,    -1,    -1,    -1,   145,  3567,    -1,
      -1,    -1,   150,    -1,    -1,    -1,    -1,   155,   383,  3873,
     158,    -1,   160,  3877,  3878,    -1,    -1,    -1,    -1,  3588,
    3589,  3590,  3591,  3742,    -1,  3680,  3681,  3682,  3856,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,  3571,   187,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     8,
      -1,    -1,    11,    -1,    -1,    50,  1844,  3885,    -1,   207,
      -1,  1849,  1850,    -1,    -1,    -1,    -1,  3786,    -1,    -1,
      18,    -1,  1860,    -1,    -1,    -1,    24,    36,    -1,    -1,
    3640,    -1,    -1,    42,    -1,  3645,    -1,    82,  3648,    -1,
      -1,    -1,    -1,    -1,    -1,   243,    -1,    -1,    -1,    -1,
      -1,    49,    -1,   251,    -1,    -1,    -1,    66,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3834,    64,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3785,   502,    -1,  3702,    -1,    -1,   507,    -1,   509,    -1,
      -1,   512,   137,   514,    -1,   516,    -1,    95,   296,   520,
      -1,   522,    -1,   524,   525,    -1,  3725,    -1,  2203,  2204,
    3729,   532,  3665,  2208,   535,   113,    -1,  3702,    -1,   128,
      -1,    -1,   120,   168,    -1,   123,    -1,    -1,   549,    -1,
      -1,    -1,   553,    -1,    -1,    -1,    -1,   558,    -1,    -1,
      18,   562,   340,    -1,   565,    -1,    24,    -1,    -1,  1987,
      -1,    -1,   197,  2248,  2249,    -1,    -1,   166,  3863,   580,
      -1,   170,  3745,    -1,   585,   363,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   172,    -1,  3881,   175,  3883,    -1,
      -1,    -1,   191,   192,    -1,    -1,    64,    -1,   386,    -1,
     388,   389,    -1,  3776,    -1,    -1,    -1,   206,    -1,    -1,
    3975,    -1,    -1,    -1,    -1,   626,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   636,   637,  4095,    -1,   217,
      -1,   219,  2060,   421,  3834,   234,   424,   425,   426,    -1,
      -1,   229,    -1,   231,   655,   113,   657,   658,   247,   660,
      -1,   662,   120,   241,    -1,   123,  4015,    -1,   293,    -1,
      -1,   249,   297,   674,    -1,  4024,    -1,   678,   303,   257,
     258,    -1,    -1,   684,    -1,   310,    -1,    -1,  3973,    -1,
      -1,  3890,    -1,   318,   695,    -1,    -1,    -1,    -1,    -1,
      -1,   326,    -1,    -1,  3867,  4054,   707,    -1,    -1,   334,
      -1,   289,    -1,    -1,    -1,   293,   294,   175,    -1,    -1,
      -1,    -1,  2140,    -1,    -1,    -1,    -1,  4012,    -1,    -1,
      -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,    -1,
     318,    -1,    -1,    -1,    -1,    -1,    -1,   748,    -1,    -1,
     328,    -1,    -1,    -1,    -1,   756,   757,    -1,    -1,   384,
      -1,    -1,     0,   388,   389,    -1,    -1,    -1,    -1,    -1,
      -1,   229,    -1,   231,    -1,    -1,    -1,  4062,    -1,    -1,
      -1,    -1,    -1,   241,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   249,    -1,   794,    -1,    -1,   374,    -1,    -1,    -1,
     258,    -1,    -1,   804,    -1,    -1,   807,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  4165,  4102,    -1,   820,
      -1,    -1,    -1,    -1,    -1,   414,   415,   416,   417,   418,
     419,     8,    -1,   834,    11,   293,    -1,    -1,    -1,   840,
     841,    -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,    -1,
      -1,    28,    -1,   854,   855,   856,   857,    -1,   859,    36,
     318,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   884,   885,    -1,    -1,    -1,  4119,    66,
      -1,   129,    -1,  4083,  4083,  4083,  4083,  4083,  4083,    -1,
      -1,    -1,   903,   141,    -1,    -1,   907,   145,    -1,    -1,
      -1,    -1,   150,    -1,  4113,   916,   374,   155,    -1,    -1,
     158,    -1,   160,    -1,    -1,    -1,    -1,    -1,    -1,  4119,
    4119,  4119,  4119,  4119,  4119,    -1,    -1,   938,   939,    -1,
      -1,    -1,   943,    -1,   945,    -1,    -1,    -1,  4113,   187,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   962,  4161,    -1,   965,    -1,    -1,   968,   969,   207,
    4169,    -1,    -1,  4163,  4163,  4163,  4163,  4163,  4163,    -1,
     981,    -1,    -1,    -1,  2402,    -1,    -1,    -1,    -1,   166,
      -1,    -1,    -1,   170,    -1,    -1,  4161,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  4169,   243,    -1,    -1,  1009,    -1,
      -1,    -1,    -1,   251,   191,   192,    -1,    -1,    -1,    -1,
      -1,    -1,  2440,  2441,    -1,  2443,    -1,    -1,    -1,   206,
      -1,    -1,    -1,    -1,    -1,    -1,  1037,  1038,    -1,  1040,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    31,    -1,   231,    -1,  1057,   234,   296,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     247,    50,    -1,   250,    -1,  2493,    -1,  2495,  1079,    -1,
      -1,    -1,    -1,    -1,    -1,  1086,  1087,    -1,    -1,    -1,
      -1,  1092,    -1,    -1,  1095,    -1,    -1,    -1,    -1,    -1,
      -1,  2776,   340,    82,  2779,  2780,  2781,  2782,  2783,  2784,
    2785,  2786,  2787,  2788,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2539,    -1,  1124,    -1,   363,    -1,  1128,  1129,    -1,
      -1,    -1,    -1,    -1,  2809,    -1,    -1,  1138,  1139,  1140,
      -1,    -1,  2560,    -1,    -1,   322,    -1,    -1,   386,    -1,
     388,   389,    -1,    -1,    -1,  1156,    -1,    -1,   137,    -1,
      -1,    -1,    -1,  2838,  2839,    -1,    -1,  2585,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
      -1,    -1,  1183,   421,    -1,  2603,   424,   425,   426,   168,
      -1,    -1,    -1,  1194,    50,    -1,    -1,    -1,    -1,  1200,
      -1,    -1,  1203,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,   197,    11,
    1221,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,
      -1,    -1,    -1,   410,   411,   412,    28,   414,   415,   416,
     417,   418,   419,    -1,    36,   422,    -1,    -1,    -1,  2667,
      42,   428,  1253,  1254,  1255,  1256,  1257,    -1,    -1,    -1,
      -1,    -1,  2680,    -1,    -1,  1266,    -1,  1268,    -1,    -1,
      -1,    -1,    -1,  2691,    66,    -1,    -1,    -1,    -1,    -1,
    1281,   137,  1283,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1291,  1292,    -1,    -1,    -1,    -1,  1297,    -1,    -1,    -1,
      -1,     8,    -1,    -1,    11,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   168,    -1,   293,    -1,    -1,    -1,   297,    -1,
      -1,    28,    -1,    -1,   303,    -1,    -1,    -1,    -1,    36,
      -1,   310,    -1,    -1,    -1,    42,    -1,    -1,  2756,   318,
      -1,   197,  1343,    -1,    -1,    -1,    -1,   326,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   334,    -1,  2775,    -1,    66,
    1361,    -1,    -1,    -1,    -1,    -1,  1367,  1368,  1369,  1370,
      -1,    -1,    -1,    -1,   166,    -1,  1377,    -1,   170,    -1,
      -1,    -1,  2800,    -1,    -1,  1386,    -1,    -1,    -1,   826,
      -1,    -1,    -1,    -1,  1395,    -1,    -1,    -1,    -1,   191,
     192,  1402,    -1,  1404,    -1,   384,    -1,    -1,    -1,   388,
      -1,  1412,    -1,    -1,   206,    -1,  1417,    -1,  2836,    -1,
      -1,    -1,    -1,    -1,    -1,  1426,    -1,  1428,    -1,    -1,
      -1,  1432,  1433,    -1,  3109,    -1,  1437,   293,  1439,   231,
      -1,   297,   234,    -1,    -1,    -1,    -1,   303,    -1,    -1,
      -1,    -1,    -1,    -1,   310,   247,    -1,    -1,   250,   166,
      -1,  1462,   318,   170,    -1,    -1,    -1,    -1,    -1,  1470,
     326,    -1,    -1,  1474,  1475,    -1,    -1,    -1,   334,    -1,
      -1,  1482,    -1,    -1,   191,   192,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1495,  1496,    -1,    -1,  1499,   206,
      -1,    -1,  1503,    -1,  1505,    -1,    -1,    -1,    -1,    -1,
      -1,  1512,    -1,    -1,  1515,   952,    -1,  1518,    -1,    -1,
      -1,    -1,    -1,    -1,   231,  1526,  1527,   234,   384,    -1,
     322,    -1,   388,  1534,    -1,  1536,  1537,  1538,  1539,  1540,
     247,    -1,    -1,   250,    -1,    -1,  1547,  1548,    -1,  1550,
      -1,  1552,  1553,    -1,    -1,  1556,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2988,  1572,    -1,    -1,    -1,  1576,  1577,    -1,    -1,    -1,
    1581,    -1,    -1,    -1,  1585,    -1,  1587,  1588,  1589,  1590,
    1591,  1592,  1593,  1594,  1595,    -1,  1597,    -1,    -1,    -1,
    1601,  1602,    -1,  1604,    -1,    -1,  3281,  3282,    -1,  1610,
      -1,    -1,    -1,    -1,    -1,   322,    -1,    -1,   410,   411,
     412,    -1,   414,   415,   416,   417,   418,   419,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   427,    -1,    -1,    -1,    18,
      -1,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,   410,   411,   412,  1143,   414,   415,   416,
     417,   418,   419,    -1,    33,    -1,    -1,  3135,    -1,    -1,
     427,    -1,    -1,  1724,    -1,  1726,    -1,  1728,    -1,    -1,
      -1,    -1,    -1,    -1,   113,    54,    -1,    -1,    -1,    -1,
      -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    67,    -1,
      -1,  3169,    -1,  1190,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    80,    -1,  1764,    -1,  1766,    -1,    -1,    -1,    -1,
      -1,  1772,    -1,    -1,    -1,    -1,  1777,    -1,    97,  1780,
    1781,    -1,  1219,    -1,    -1,  1786,    -1,  1788,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   175,    -1,    -1,   118,
      -1,  1802,  1803,    -1,    -1,    -1,    -1,  1808,    -1,  1810,
    1811,  1812,    -1,  1814,  1815,    -1,  1817,   136,  1819,    -1,
    1821,  1822,    -1,    -1,    -1,    18,    -1,    -1,   147,    -1,
    1831,    24,    -1,   152,    -1,    -1,    -1,    -1,    -1,   158,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1285,    -1,
     229,    -1,   231,  1854,   173,  1856,    -1,    -1,  3276,    -1,
      -1,  1862,   241,    -1,    -1,    -1,  1867,  1304,    -1,  3287,
     249,    64,  1873,    -1,    -1,    -1,  1877,    -1,    -1,   258,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1324,  1889,  1890,
      -1,    -1,    -1,    -1,    -1,  1896,  1897,    -1,    -1,  1900,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1910,
     289,    -1,  1349,    -1,   293,    -1,  1917,    -1,    -1,    -1,
     113,    -1,    -1,  1924,  3599,    -1,    -1,   120,   247,    -1,
     123,    -1,  1933,  3608,  1935,  1936,  1937,    -1,   257,   318,
      -1,    -1,    -1,    -1,    -1,  1946,    -1,    -1,    -1,    -1,
    3625,  3626,    -1,    -1,    -1,    -1,   275,    -1,    -1,    -1,
      -1,  1962,    -1,    -1,  1401,    -1,    -1,    -1,  3386,  1970,
    1971,  1972,  1973,  1974,  1975,    -1,    -1,    -1,    -1,    -1,
      -1,   300,   175,    -1,  1985,   304,    -1,   306,    -1,  3407,
      -1,    -1,    -1,   312,    -1,   374,   315,    -1,    -1,    -1,
      -1,  3419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2012,    -1,    -1,    -1,  2016,  2017,    -1,    -1,    -1,
    2021,   340,    -1,   342,    -1,    -1,    -1,   346,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   354,   229,    -1,   231,  3457,
     359,    -1,    -1,    -1,    -1,  2046,    -1,    -1,   241,    -1,
      -1,   370,  2053,  2054,    -1,    -1,   249,    -1,    -1,    -1,
      -1,    -1,  2063,    -1,   383,   258,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2078,  2079,  2080,
    2081,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2095,    -1,   289,    -1,    -1,  2100,
     293,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      18,  2112,    -1,    -1,    -1,     3,    24,    -1,    -1,    -1,
       8,    -1,    -1,    11,    -1,   318,    -1,  2128,    -1,    -1,
      -1,    -1,    -1,  3808,  1571,    -1,    -1,    -1,    -1,    -1,
      28,    -1,    -1,    31,    -1,    -1,    -1,    -1,    36,  2150,
      -1,    -1,    -1,  2154,    42,    -1,    64,  2158,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2166,    -1,    -1,    -1,    -1,
      -1,    -1,  2173,  2174,    -1,    -1,    -1,    -1,    66,    -1,
      -1,   374,    -1,    -1,    -1,  3603,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,    11,
      -1,    -1,  2203,  2204,    -1,   113,    -1,  2208,    -1,    -1,
      -1,    -1,   120,    -1,    -1,   123,    28,    -1,    -1,  2220,
    2221,  2222,  2223,    -1,    36,    -1,    -1,    -1,    -1,    -1,
      42,    -1,  2233,    18,    -1,  2236,    -1,  2238,  2239,    24,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2248,  2249,    -1,
      -1,  2252,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2265,    -1,  2267,   175,  2269,    -1,
    2271,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   166,    64,
      -1,    -1,   170,    -1,  3702,    -1,  2287,    -1,    -1,    -1,
    2291,    -1,    -1,    -1,    -1,    -1,    -1,  2298,    -1,  2300,
    2301,  2302,    -1,   191,   192,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2314,    -1,    -1,  2317,    -1,   206,    -1,
      -1,   229,    -1,   231,    -1,    -1,    -1,  2328,   113,    -1,
      -1,    -1,  2333,   241,    -1,   120,  2337,    -1,   123,  2340,
      -1,   249,    -1,   231,    -1,  2346,   234,    -1,  2349,    -1,
     258,    -1,  2353,    -1,   166,    -1,    -1,    -1,   170,   247,
      -1,  2362,   250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3788,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,
     192,   289,  2383,    -1,  2385,   293,    -1,    -1,    -1,  2390,
     175,  3809,    -1,    -1,   206,    -1,    -1,    -1,  2399,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2407,  1844,  2409,  2410,
     318,    -1,  1849,  1850,    -1,    -1,    -1,    -1,    -1,   231,
      -1,  3839,   234,  1860,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   322,   247,    -1,    -1,   250,    -1,
      -1,    -1,    -1,    -1,   229,    -1,   231,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3873,   241,    -1,    -1,  3877,
    3878,    -1,    -1,    -1,   249,    -1,   374,    -1,    -1,    -1,
      -1,    -1,    -1,   258,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2489,    -1,
      -1,    -1,    -1,    -1,    -1,  2496,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   289,    -1,    -1,    -1,   293,    -1,
     322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   410,   411,   412,    -1,   414,   415,   416,   417,
     418,   419,    -1,   318,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1987,    -1,    -1,  2554,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2564,  2565,    -1,    -1,     8,    -1,    -1,
      11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,   374,
      -1,    -1,    -1,    -1,    -1,    36,    -1,    -1,   410,   411,
     412,    42,   414,   415,   416,   417,   418,   419,    -1,    -1,
      -1,    -1,   424,    -1,    -1,  2616,    -1,  2618,    -1,    -1,
      -1,  2622,    -1,  2060,    -1,    66,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,
      11,    -1,    -1,    -1,    -1,  2646,  2647,    -1,    -1,    -1,
      -1,    -1,    -1,  2654,    -1,    -1,    -1,  2658,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
      -1,    42,  2673,    -1,    -1,    -1,    -1,    -1,  2679,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,  2700,
      -1,    -1,  2703,  2140,   826,  2706,    -1,    -1,    -1,  2710,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2718,    -1,    -1,
    2721,    -1,    -1,    -1,    -1,   166,    -1,    -1,    -1,   170,
      -1,    -1,    -1,    -1,    -1,    -1,  2737,    -1,  2739,    -1,
      -1,    -1,    -1,    -1,  2745,    -1,    -1,    -1,    -1,    -1,
     191,   192,  2753,    -1,    -1,    -1,    -1,   128,    -1,    -1,
      -1,  2762,    -1,    -1,    -1,   206,    -1,  2768,    -1,  2770,
      -1,    -1,    -1,    -1,    -1,  2776,    -1,    -1,  2779,  2780,
    2781,  2782,  2783,  2784,  2785,  2786,  2787,  2788,    -1,    -1,
     231,  2792,  2793,   234,    -1,   166,    -1,    -1,    -1,   170,
      -1,    -1,    -1,    -1,  2805,    -1,   247,    -1,  2809,   250,
      -1,    -1,  2813,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     191,   192,  2823,    -1,    -1,  2826,    -1,  2828,    -1,    -1,
     952,    -1,    -1,    -1,    -1,   206,  2837,  2838,  2839,    -1,
      -1,    -1,  2843,    -1,    -1,  2846,    -1,    -1,    -1,    -1,
      -1,    -1,  2853,  2854,  2855,  2856,  2857,    -1,    -1,    -1,
    2861,  2862,    -1,   234,    -1,  2866,    -1,    -1,    -1,    -1,
      -1,  2872,    -1,  2874,    -1,  2876,   247,    -1,    -1,    -1,
      -1,   322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2899,     7,
      -1,    -1,    -1,    -1,  2905,    13,    14,    -1,  2909,    -1,
    2911,    19,    -1,    21,    -1,    -1,    -1,    -1,    26,    -1,
      28,    -1,    -1,    -1,    -1,  2926,  2927,  2928,    -1,  2930,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,
      -1,  2942,  2943,  2944,  2945,    -1,    -1,    -1,    -1,    -1,
    2951,   322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2402,    -1,    -1,    -1,   410,
     411,   412,  2973,   414,   415,   416,   417,   418,   419,    -1,
      -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2440,  2441,    -1,  2443,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3015,    -1,    -1,  3018,    -1,    -1,
      -1,  1143,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3032,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   414,   415,   416,   417,   418,   419,    -1,
      -1,    -1,    -1,    -1,    -1,  3056,  2493,    -1,  2495,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   826,    -1,  1190,    -1,
     178,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,
      -1,   189,    -1,   191,    -1,   193,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3096,    -1,  1219,    -1,    -1,
      -1,    -1,  2539,    -1,    -1,    -1,  3107,    -1,  3109,    -1,
      -1,    -1,    -1,    -1,  3115,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2560,    -1,    -1,    -1,  3128,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3138,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3147,    -1,  2585,    -1,
      -1,    -1,  3153,    -1,    -1,    -1,  3157,    -1,  3159,    -1,
      -1,    -1,    -1,  1285,    -1,    -1,  2603,    -1,    -1,  3170,
    3171,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3192,   952,  3194,    -1,     8,    -1,    -1,    11,    -1,
      -1,    -1,  1324,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    36,    -1,    -1,  3227,  1349,    -1,    42,
    2667,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2680,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    66,  2691,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3263,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3273,  3274,    -1,    -1,    -1,    -1,    -1,  1401,
    3281,  3282,    -1,    -1,    -1,  3286,    -1,    -1,    -1,    -1,
      -1,  3292,  3293,    -1,    -1,  3296,    -1,  3298,  3299,  3300,
    3301,    -1,    -1,    -1,  3305,    -1,    -1,  3308,    -1,    -1,
    3311,    -1,    -1,    -1,  3315,   128,    -1,    -1,    -1,  2756,
    3321,    -1,    -1,  3324,    -1,    -1,    -1,    -1,  3329,    -1,
      -1,    -1,    -1,    -1,  3335,    -1,    -1,    -1,  2775,    -1,
    3341,    -1,    -1,    -1,    -1,    -1,  3347,    -1,    -1,    -1,
      -1,    -1,    -1,   166,  3355,    -1,    -1,   170,  3359,    -1,
      -1,    -1,    -1,  2800,    -1,    -1,    -1,  3368,    -1,    -1,
    3371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,   192,
      -1,    -1,    -1,  1143,    -1,    -1,    -1,  3388,  3389,    -1,
      -1,    -1,    -1,   206,    -1,    -1,    -1,    -1,    -1,  2836,
      -1,    -1,   510,    -1,  3405,    -1,    -1,    -1,    -1,   517,
      -1,    -1,    -1,  3414,    -1,    -1,    -1,    -1,   526,   527,
      -1,   234,    -1,   531,    -1,  3426,    -1,    -1,    -1,    -1,
    1190,    -1,    -1,   541,   247,    -1,    -1,    -1,  3439,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   554,    -1,    -1,  1571,
      -1,    -1,  3453,    -1,    -1,    -1,    -1,    -1,    -1,  1219,
     568,    -1,    -1,   571,    -1,   573,    -1,   575,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3477,    -1,    -1,    -1,
      -1,    -1,  1604,    -1,  3485,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   610,    -1,    -1,    -1,    -1,    -1,    -1,   322,
      -1,    -1,  3513,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   632,  1285,   634,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3541,  3542,    -1,    -1,  1304,    -1,    -1,    -1,    -1,    -1,
      -1,  2988,    -1,     8,    -1,    -1,    11,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1324,    -1,    -1,    -1,    -1,    -1,
    3571,    -1,    -1,    28,    -1,    -1,    -1,    -1,   686,    -1,
      -1,    36,    -1,    -1,    -1,    -1,  3587,    42,    -1,  1349,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3599,    -1,
      -1,   414,   415,   416,   417,   418,   419,  3608,    -1,    -1,
      -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3625,  3626,    -1,    -1,  3629,    -1,
      -1,    -1,    -1,    -1,    -1,  3636,    -1,    -1,    -1,  3640,
      -1,  1401,    -1,    -1,  3645,    -1,    -1,  3648,  3649,    -1,
    3651,    -1,  3653,  3654,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3672,    -1,  3674,    -1,   783,    -1,  3678,  3679,  3680,
    3681,  3682,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     798,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3135,    -1,
      -1,   809,    -1,    -1,    -1,  3706,  3707,    -1,   816,    -1,
      -1,   166,    -1,    -1,     8,   170,    -1,    11,    -1,    -1,
     828,    -1,  1844,    -1,    -1,    -1,    -1,  1849,  1850,    -1,
      -1,    -1,  3169,    -1,    28,  3736,   191,   192,  1860,    -1,
      -1,  3742,    36,    -1,  3745,    -1,    -1,    -1,    42,    -1,
      -1,   206,   860,    -1,    -1,    -1,    -1,  3758,    -1,  3760,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3771,    -1,    66,    -1,    -1,  3776,   231,    -1,    -1,   234,
      -1,    -1,    -1,    -1,  3785,  3786,    -1,    -1,    -1,    -1,
      -1,    -1,   247,    -1,    -1,   250,     8,    -1,    -1,    11,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3808,    -1,    -1,
    3811,  1571,  3813,   921,    -1,   923,    28,   925,    -1,   927,
      -1,   929,   930,   931,    36,    -1,    -1,    -1,   936,  3830,
      42,    -1,    -1,  3834,    -1,    -1,  3837,    -1,    -1,  3276,
      -1,    -1,  3843,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3287,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3863,    -1,    -1,  1987,  3867,   322,    -1,    -1,
      -1,    -1,   166,    -1,    -1,    -1,   170,    -1,    -1,  3880,
    3881,  3882,  3883,    -1,    -1,    -1,    -1,    -1,    -1,  3890,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,   192,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3912,   206,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   231,  2060,    -1,
     234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3386,
      -1,    -1,    -1,   247,   166,   410,   411,   412,   170,   414,
     415,   416,   417,   418,   419,    -1,  3967,    -1,    -1,   424,
    3407,    -1,  3973,    -1,  3975,    -1,    -1,    -1,    -1,   191,
     192,  3982,  3419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   206,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1113,    -1,    -1,    -1,    -1,
      -1,  4012,    -1,    -1,  4015,    -1,    -1,    -1,  2140,   231,
    3457,    -1,   234,  4024,    -1,    -1,    -1,    -1,   322,    -1,
      -1,    -1,    -1,    -1,    -1,   247,    -1,  4038,   250,    -1,
    4041,  4042,    -1,  4044,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,     8,    -1,  4054,    11,    -1,    -1,    -1,    -1,    -1,
      -1,  4062,    -1,    -1,  1172,    -1,    -1,    -1,    -1,    -1,
      -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,
      -1,    -1,    -1,    -1,  1844,    42,  4087,    -1,    -1,  1849,
    1850,    -1,    -1,    -1,    -1,    -1,  4097,    -1,    -1,    -1,
    1860,  4102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     322,    -1,    -1,    -1,    -1,    -1,   410,   411,   412,    -1,
     414,   415,   416,   417,   418,   419,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   172,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   180,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  4156,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  4165,    -1,  3603,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2300,  2301,
    2302,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   410,   411,
     412,    -1,   414,   415,   416,   417,   418,   419,    -1,   166,
      -1,    -1,   424,   170,    -1,    -1,    -1,   826,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1987,    -1,    -1,
      -1,    -1,    -1,    -1,   191,   192,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1352,    -1,    -1,    -1,    -1,   206,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1365,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3702,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   231,    -1,    -1,   234,    -1,    -1,
    2402,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     247,    -1,    -1,   250,    -1,  1403,    -1,    -1,    -1,  1407,
    2060,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1416,    -1,
    1418,    -1,  1420,    -1,    -1,    -1,    -1,  1425,  2440,  2441,
      -1,  2443,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1448,    -1,  1450,   952,  1452,    -1,  1454,    -1,  1456,    -1,
      -1,  3788,  1460,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,
      -1,  2493,  3809,  2495,    -1,    -1,    -1,    -1,    -1,     8,
    2140,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
      -1,    -1,  3839,    -1,    -1,    -1,    -1,    36,    -1,    -1,
      -1,    -1,    -1,    42,    -1,    -1,    -1,  2539,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3873,    66,  2560,    -1,
    3877,  3878,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   410,   411,   412,    -1,   414,   415,   416,
     417,   418,   419,  2585,    -1,    -1,    -1,   424,    -1,    -1,
      -1,    -1,    -1,    -1,   509,    -1,    -1,    -1,    -1,    -1,
      -1,  2603,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,     8,    -1,    -1,    11,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   553,    -1,
      -1,    -1,    28,    -1,    -1,    -1,    -1,   562,    -1,    -1,
      36,    -1,    -1,    -1,  1143,    -1,    42,   166,    -1,    -1,
      -1,   170,    -1,    -1,    -1,  2667,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2680,    -1,
      66,    -1,   191,   192,    -1,    -1,    -1,    -1,    -1,  2691,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   206,    -1,    -1,
      -1,  1190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   231,    -1,    -1,   234,    -1,    -1,    -1,    -1,
    1219,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   247,    -1,
     655,   250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2756,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2402,    -1,    -1,    -1,    -1,    -1,    -1,   684,
      -1,    -1,    -1,  2775,    -1,    -1,    -1,    -1,    -1,    -1,
     166,    -1,    -1,    -1,   170,  1773,  1774,    -1,    -1,    -1,
    1778,  1779,    -1,    -1,  1782,    -1,  1285,    -1,  2800,    -1,
    2440,  2441,    -1,  2443,  1792,   191,   192,    -1,    -1,    -1,
      -1,  1799,    -1,   322,    -1,  1304,    -1,  1805,  1806,    -1,
     206,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1816,    -1,
    1818,    -1,    -1,    -1,  2836,  1324,    -1,    -1,     8,    -1,
      -1,    11,    -1,    -1,  1832,   231,    -1,    -1,   234,  1837,
      -1,    -1,    -1,  2493,    -1,  2495,    -1,    -1,    28,    -1,
    1349,   247,    -1,    -1,   250,    -1,    36,    -1,    -1,    -1,
      -1,    -1,    42,    -1,  2876,  1863,  1864,  1865,  1866,   794,
      -1,    -1,  1870,  1871,    -1,    -1,    -1,    -1,    -1,   804,
    1878,    -1,    -1,  1881,    -1,    -1,    66,  1885,    -1,  2539,
      -1,   410,   411,   412,    -1,   414,   415,   416,   417,   418,
     419,   826,  1401,  1901,    -1,   424,    -1,    -1,    -1,    -1,
    2560,    -1,    -1,  1911,    -1,  1913,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1921,  1922,  1923,   322,  1925,    -1,    -1,
      -1,    -1,    -1,    -1,   859,  2585,    -1,    -1,    -1,    -1,
    1938,  1939,  1940,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1948,  1949,    -1,  2603,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   826,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2988,    -1,    -1,    -1,
      -1,    -1,   907,    -1,    -1,    -1,   166,    -1,    -1,    -1,
     170,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2008,   191,   192,    -1,   410,   411,   412,  2667,   414,   415,
     416,   417,   418,   419,    -1,    -1,   206,   952,   424,    -1,
    2680,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2691,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   231,    -1,    -1,   234,    -1,   981,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   247,    -1,    -1,
     250,    -1,  1571,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1009,    -1,    -1,   952,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       8,    -1,    -1,    11,    -1,    -1,  2756,    -1,    -1,    -1,
      -1,    -1,  1037,  1038,    -1,  1040,    -1,    -1,     8,    -1,
      28,    11,    -1,  3135,    -1,  2775,    -1,    -1,    36,    -1,
      -1,    -1,  1057,    -1,    42,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   322,    -1,    -1,    -1,    36,    -1,  2146,    -1,
    2800,    -1,    42,    -1,    -1,    -1,    -1,  3169,    66,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1095,  1096,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2836,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1124,
      -1,    -1,    -1,  1128,  1129,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1143,    -1,
      -1,    -1,    -1,    -1,  1149,    -1,    -1,    -1,    -1,    -1,
     410,   411,   412,    -1,   414,   415,   416,   417,   418,   419,
      -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   166,    -1,
      -1,    -1,   170,    -1,  3276,  1190,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3287,   166,    -1,  1143,    -1,
     170,    -1,    -1,   191,   192,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1219,    -1,    -1,    -1,   206,    -1,
      -1,   191,   192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3324,    -1,    -1,    -1,   206,  3329,    -1,    -1,
      -1,    -1,    -1,   231,    -1,  1190,   234,    -1,    -1,  3341,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2988,   247,
      -1,   231,   250,    -1,   234,  1844,    -1,    -1,    -1,    -1,
    1849,  1850,    -1,    -1,  1219,    -1,    -1,   247,    -1,    -1,
    1285,  1860,    -1,    -1,    -1,  2363,  2364,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3386,    -1,    -1,    -1,    -1,  1304,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3407,    -1,    -1,    -1,  1324,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3419,    -1,    -1,
      -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,  1344,
    1285,  2419,  2420,    -1,  1349,  2423,    -1,    -1,    -1,  2427,
    2428,  2429,   322,    -1,    -1,    -1,    -1,    -1,    -1,  1304,
      -1,    -1,    -1,    -1,    -1,  3457,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1324,
      -1,    -1,    -1,  2461,  2462,  2463,  2464,    -1,    -1,    -1,
    1395,    -1,    -1,    -1,    -1,    -1,  1401,    -1,    -1,  1404,
      -1,    -1,    -1,    -1,  1349,  3135,    -1,    -1,  1987,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2497,
      -1,    -1,   410,   411,   412,    -1,   414,   415,   416,   417,
     418,   419,    -1,    -1,    -1,    -1,   424,    -1,    -1,  3169,
     410,   411,   412,    -1,   414,   415,   416,   417,   418,   419,
      -1,    -1,    -1,    -1,    -1,    -1,  1401,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1470,    -1,    -1,    -1,    -1,
      -1,    -1,  2550,    -1,    -1,    -1,  3568,  2555,    -1,    -1,
      -1,  2060,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1503,    -1,
    1505,    -1,    -1,    -1,    -1,    -1,    -1,  1512,    -1,    -1,
    1515,  3603,    -1,  1518,    -1,    -1,     8,    -1,    -1,    11,
      -1,  1526,  1527,    -1,    -1,    -1,    -1,    -1,    -1,  1534,
      -1,    -1,  1537,  1538,  1539,  1540,    28,    -1,    -1,  2617,
      -1,    -1,  1547,  1548,    36,  1550,  3276,  1552,  1553,  2627,
      42,  1556,    -1,    -1,    -1,    -1,    -1,  3287,    -1,    -1,
      -1,  2140,    -1,    -1,    -1,    -1,  1571,  1572,  1573,    -1,
      -1,    -1,  1577,    -1,    66,  2653,  1581,  2655,    -1,    -1,
    1585,    -1,  1587,  1588,  1589,  1590,  1591,  1592,  1593,  1594,
    1595,    -1,  1597,    -1,    -1,    -1,    -1,  1602,    -1,  1604,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3702,    -1,    -1,    -1,  2692,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1571,  2705,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,
      11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3386,    28,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
      -1,    42,    -1,    -1,   166,    -1,    -1,  3407,   170,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3419,
      -1,    -1,    -1,    -1,    -1,    66,  3788,    -1,    -1,   191,
     192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   206,    -1,    -1,  3809,    -1,    -1,
      -1,    -1,    -1,  1728,    -1,    -1,    -1,  3457,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   231,
      -1,    -1,   234,    -1,    -1,    -1,    -1,  3839,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   247,    -1,    -1,   250,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1776,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3873,    -1,    -1,    -1,  3877,  3878,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   166,    -1,    -1,  1803,   170,
      -1,    -1,    -1,  1808,    -1,    -1,    -1,    -1,    -1,  1814,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     191,   192,    -1,  2402,    -1,    -1,    -1,    -1,    -1,    -1,
     322,    -1,    -1,    -1,    -1,   206,    -1,    -1,    -1,  1844,
      -1,    -1,    -1,    -1,  1849,  1850,    -1,  3939,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1860,    -1,    -1,    -1,  2937,
     231,  2440,  2441,   234,  2443,    -1,    -1,    -1,    -1,    -1,
      -1,  1876,    -1,  3603,  1879,    -1,   247,    -1,    -1,   250,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2971,    -1,    -1,    -1,    -1,    -1,  1844,
      -1,    -1,    -1,    -1,  1849,  1850,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2493,  1860,  2495,    -1,   410,   411,
     412,    -1,   414,   415,   416,   417,   418,   419,    -1,    -1,
      -1,    -1,   424,  3011,    -1,    -1,    -1,    -1,  3016,  3017,
      -1,  3019,  3020,  3021,  3022,  3023,  3024,  3025,    -1,    -1,
      -1,   322,    -1,    -1,    -1,    -1,  3034,    -1,     8,    -1,
    2539,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3702,    -1,    -1,    -1,    -1,    -1,    28,    -1,
    1985,  2560,  1987,    -1,    -1,    -1,    36,    -1,    -1,    -1,
      -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2585,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2603,  3103,  3104,  3105,    -1,    -1,
    3108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   410,
     411,   412,  1987,   414,   415,   416,   417,   418,   419,    -1,
      -1,    -1,    -1,   424,    -1,  2060,    -1,    -1,  3788,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   655,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3809,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2667,    -1,
      -1,    -1,    -1,    -1,    -1,  2100,    -1,    -1,   684,    -1,
      -1,  2680,    -1,    -1,    -1,    -1,    -1,    -1,  3186,  3839,
      -1,    -1,  2691,    -1,    -1,  2060,   166,    -1,    -1,    -1,
     170,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2140,    -1,    -1,    -1,    -1,
      -1,   191,   192,  3873,    -1,    -1,    -1,  3877,  3878,  2154,
      -1,    -1,    -1,  2158,    -1,    -1,   206,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2173,  2174,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2756,    -1,    -1,
      -1,   231,    -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2140,  2775,   247,  2203,  2204,
     250,    -1,    -1,  2208,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2220,  2221,  2222,  2223,    -1,
      -1,  2800,     8,  2228,    -1,    11,    -1,    -1,  2233,  2234,
      -1,  2236,    -1,  2238,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    28,  2248,  2249,    -1,    -1,  2252,    -1,    -1,
      36,    -1,    -1,    -1,    -1,    -1,    42,  2836,    -1,    -1,
    2265,    -1,  2267,    -1,    -1,    -1,  2271,    -1,    -1,    -1,
      -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      66,    -1,  2287,    -1,    -1,     8,    -1,    -1,    11,    -1,
      -1,    -1,    -1,  2298,    -1,  2300,  2301,  2302,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    32,
      -1,    -1,  2317,    36,    -1,    -1,    -1,    -1,  3396,    42,
      -1,    -1,    -1,  2328,    -1,    -1,    -1,    -1,  2333,    -1,
      -1,    -1,    -1,    -1,    -1,  2340,    -1,  3415,  3416,    -1,
      -1,  2346,    -1,    66,    -1,    -1,    -1,    -1,    -1,  3427,
    3428,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     410,   411,   412,    -1,   414,   415,   416,   417,   418,   419,
      -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,  2383,    -1,
     166,    -1,    -1,    -1,   170,    -1,    -1,    -1,   111,    -1,
      -1,    -1,    -1,    -1,    -1,   981,    -1,  2402,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   191,   192,    -1,    -1,  2988,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     206,    -1,    -1,  1009,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2440,  2441,    -1,  2443,    -1,
      -1,    -1,    -1,   166,    -1,   231,    -1,   170,   234,    -1,
      -1,  1037,  1038,    -1,  1040,    -1,  3534,  2402,    -1,    -1,
      -1,   247,    -1,    -1,   250,  2470,  2471,  2472,   191,   192,
      -1,  1057,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3558,    -1,    -1,   206,    -1,    -1,    -1,    -1,  2493,    -1,
    2495,    -1,    -1,    -1,    -1,  2440,  2441,    -1,  2443,    -1,
      -1,  3579,    -1,    -1,    -1,    -1,    -1,    -1,   231,  1095,
      -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   247,    -1,    -1,   250,    -1,    -1,
      -1,    -1,    -1,    -1,  2539,    -1,   322,    -1,  1124,    -1,
      -1,    -1,  1128,  1129,    -1,    -1,    -1,    -1,  2493,    -1,
    2495,    -1,    -1,    -1,    -1,  2560,  3135,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2582,    -1,    -1,
    2585,    -1,    -1,    -1,    -1,    -1,    -1,  3665,    -1,    -1,
    3169,    -1,    -1,    -1,  2539,    -1,    -1,  2602,  2603,   322,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2560,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   410,   411,   412,    -1,   414,   415,
     416,   417,   418,   419,    -1,    -1,   422,    -1,    -1,    -1,
    2585,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2603,    -1,
      -1,    -1,  2667,    -1,  1053,    -1,    -1,    -1,    -1,    -1,
     826,    -1,    -1,    -1,    -1,  2680,    -1,    -1,    -1,  3757,
      -1,    -1,    -1,    -1,    -1,    -1,  2691,   410,   411,   412,
      -1,   414,   415,   416,   417,   418,   419,  3276,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3287,    -1,
      -1,    -1,    -1,  2718,    -1,    -1,  3794,    -1,    -1,    -1,
    1109,    -1,  2667,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2680,    -1,    -1,    -1,    -1,
      -1,    -1,   826,    -1,    -1,    -1,  2691,    -1,  2753,    -1,
      -1,  2756,    -1,    -1,    -1,    -1,    -1,  2762,    -1,    -1,
      -1,    -1,    -1,  2768,    -1,  2770,    -1,    -1,    -1,    -1,
    2775,  2776,    -1,    -1,  2779,  2780,  2781,  2782,  2783,  2784,
    2785,  2786,  2787,  2788,    -1,    -1,    -1,  2792,  2793,    -1,
      -1,    -1,    -1,    -1,    -1,  2800,   952,    -1,    -1,    -1,
    2805,    -1,    -1,    -1,  2809,    -1,  2811,  3386,  2813,    -1,
      -1,  2756,    -1,    -1,    -1,    -1,    -1,    -1,  2823,    -1,
      -1,  2826,    -1,  2828,    -1,    -1,    -1,    -1,  3407,    -1,
    2775,  2836,  2837,  2838,  2839,    -1,    -1,    -1,  2843,    -1,
    3419,  2846,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2856,    -1,    -1,    -1,  2800,    -1,    -1,    -1,    -1,
      -1,  2866,    -1,    -1,    -1,  3943,    -1,    -1,   952,  2874,
      -1,  2876,    -1,    -1,    -1,    -1,    -1,    -1,  3457,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2836,    -1,    -1,  2899,    -1,    -1,    -1,    -1,    -1,
    2905,    -1,    -1,    -1,    -1,    -1,  2911,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2926,    -1,    -1,    -1,    -1,  1512,    -1,    -1,    -1,
      -1,  4009,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1534,    -1,
      -1,  1537,    -1,    -1,  1540,    -1,    -1,    -1,    -1,    -1,
      -1,  1547,  1548,    -1,    -1,    -1,    -1,  1553,    -1,    -1,
    1556,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2983,    -1,
      -1,    -1,  2987,  2988,  2989,    -1,  1572,  1143,    -1,    -1,
      -1,  1577,    -1,    -1,    -1,  1581,    -1,    -1,    -1,  1585,
      -1,  1587,  1588,  1589,  1590,  1591,  1592,  1593,  1594,  1595,
      -1,  1597,    -1,    -1,    -1,    -1,  1602,    -1,  1604,    -1,
      -1,    -1,    -1,    -1,  3603,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1190,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2988,    -1,    -1,  1435,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1143,
      -1,    -1,    -1,  1219,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    -1,    -1,  3109,    -1,  1190,    -1,    -1,    -1,
      -1,    -1,    -1,    33,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1510,    -1,  3702,    -1,    -1,    -1,    -1,    -1,  1285,
    3135,    -1,    -1,    -1,    54,  1219,    -1,    -1,    -1,    -1,
      -1,    -1,  1728,    -1,  1533,    -1,    -1,    67,  1304,  1538,
      -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,
      80,    -1,    -1,    -1,  3169,  3170,  3171,    -1,  1324,  1558,
    1559,     8,  1561,    -1,    11,    -1,    -1,    97,    -1,    -1,
      -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
    3135,    28,    -1,  1349,    -1,    -1,    -1,    -1,   118,    36,
      -1,  1285,    -1,    -1,    -1,    42,    -1,    -1,    -1,  3788,
      -1,  1600,    -1,    -1,    -1,    -1,   136,  1803,    -1,    -1,
    1304,    -1,  3227,    -1,  3169,    -1,    -1,   147,    -1,    66,
    3809,    -1,    -1,    -1,   154,    -1,    -1,    -1,   158,    -1,
    1324,    -1,    -1,    -1,    -1,  1401,  1635,    -1,    -1,    -1,
      -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,  3263,    -1,
    3839,    -1,    -1,    -1,    -1,  1349,    -1,    -1,  3273,  3274,
      -1,  3276,    -1,    -1,    -1,    -1,  3281,  3282,    -1,    -1,
      -1,  3286,  3287,    -1,    -1,    -1,    -1,  3292,  3293,    -1,
     210,  3296,    -1,    -1,  3873,    -1,    -1,    -1,  3877,  3878,
      -1,    -1,    -1,    -1,    -1,    -1,  3311,    -1,   145,    -1,
    3315,    -1,    -1,   150,    -1,     8,    -1,  1401,    11,  3324,
      -1,    -1,    -1,    -1,  3329,    -1,    -1,   247,    -1,   166,
     250,  3276,    -1,   170,    -1,    28,  3341,    -1,    -1,    -1,
      -1,    -1,  3287,    36,    -1,    -1,    -1,    -1,  1737,    42,
      -1,    -1,    -1,    -1,   191,   192,    -1,    -1,  1747,    -1,
      -1,  1750,    -1,    -1,    -1,    -1,  3371,    -1,    -1,   206,
      -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
     300,  3386,    -1,    -1,    -1,    -1,   306,    -1,    -1,    -1,
      -1,    -1,   312,    -1,   231,   315,    -1,   234,    -1,  1985,
      -1,    -1,  3407,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     247,    -1,    -1,   250,  3419,  1571,    -1,    -1,    -1,    -1,
     340,    -1,   342,   343,    -1,   345,   346,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   354,    -1,    -1,    -1,    -1,   359,
      -1,  3386,    -1,    -1,   364,    -1,    -1,   367,    -1,    -1,
     370,    -1,  3457,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3407,   383,    -1,    -1,    -1,    -1,    -1,    -1,
    3475,    -1,    -1,   166,  3419,    -1,    -1,   170,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   322,    -1,  1571,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,   192,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,  3513,    -1,
      -1,    -1,  3457,   206,  2100,    -1,    -1,    -1,    -1,    -1,
    3525,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   231,    -1,
      -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    67,   247,    -1,    -1,   250,    -1,    -1,
      -1,    -1,    -1,  3568,    -1,    -1,    80,    -1,    -1,    -1,
      -1,    -1,    -1,   410,   411,   412,   269,   414,   415,   416,
     417,   418,   419,    97,    -1,    -1,    -1,    -1,  2174,   103,
      -1,    -1,    -1,    -1,  3599,    -1,    -1,    -1,  3603,    -1,
      -1,    -1,    -1,  3608,   118,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3625,  3626,   136,    -1,  3629,    -1,    -1,    -1,    -1,   322,
      -1,    -1,    -1,   147,  2220,  3640,  2222,  2223,   152,    -1,
    3645,    -1,   335,  3648,   158,    -1,    -1,  2233,  3653,  3654,
    2236,    -1,  2238,    -1,    -1,    -1,    -1,    -1,  3603,   173,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3678,    -1,    -1,    -1,    -1,    -1,  2265,
      -1,  2267,    -1,    -1,   198,  2271,    -1,    -1,  1844,    -1,
      -1,    -1,    -1,  1849,  1850,    -1,    -1,  3702,    -1,    -1,
      -1,  3706,    -1,    -1,  1860,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2300,  2301,  2302,   410,   411,   412,
      -1,   414,   415,   416,   417,   418,   419,    -1,    -1,    -1,
      -1,  2317,    -1,   247,    -1,    -1,    -1,  3742,    -1,    -1,
      -1,    -1,  2328,    -1,    -1,    -1,    -1,  2333,    -1,    -1,
      -1,    -1,    -1,    -1,  2340,    -1,    -1,  3702,    -1,    -1,
    1844,   275,    -1,    -1,    -1,  1849,  1850,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1860,    -1,    -1,    -1,
      -1,  3786,    -1,  3788,    -1,    -1,   300,    -1,  2177,    -1,
      -1,    -1,   306,    -1,    -1,    -1,    -1,  2383,   312,    -1,
      -1,   315,    -1,  3808,  3809,    -1,  3811,    -1,  3813,    -1,
    2199,    -1,  2201,    -1,  2203,  2204,  2205,    -1,    -1,  2208,
      -1,    -1,    -1,  2212,    -1,  3830,   340,    -1,   342,  3834,
    2219,  1987,   346,    -1,  3839,  2224,    -1,    -1,    -1,    -1,
     354,  2230,    -1,  3788,    -1,   359,  2235,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2244,   370,    -1,    -1,  2248,
    2249,    -1,  2251,    -1,  3809,    -1,    -1,    -1,  3873,   383,
      -1,    -1,  3877,  3878,  2263,    -1,    -1,    -1,    -1,    -1,
      -1,  2270,    -1,  2272,  2273,  2274,  2275,  2276,  2277,  2278,
    2279,  2280,  2281,    -1,  3839,     8,    -1,    -1,    11,  3904,
      -1,    -1,    -1,  1987,  2060,    -1,    -1,  3912,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    28,    -1,  2306,    -1,    -1,
      -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,  3873,    42,
      -1,    -1,  3877,  3878,  3939,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3967,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2060,  3982,    -1,    -1,
      -1,    -1,    -1,    -1,  2140,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2395,    -1,    -1,    -1,
    4015,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4024,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   144,    -1,    -1,    -1,    -1,  4041,  4042,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4054,
      -1,    -1,    -1,   166,    -1,    -1,  2140,   170,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,   192,
      -1,    -1,  4087,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  4097,   206,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4113,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   231,    -1,
      -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   247,    -1,    -1,   250,     8,    -1,
      -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  4156,    -1,    -1,   267,    -1,  4161,    -1,    28,    -1,
    4165,    31,    -1,    -1,  4169,    -1,    36,  2753,    -1,    -1,
      -1,    -1,    42,    -1,    -1,    -1,  2762,    -1,    -1,    -1,
      -1,    -1,  2768,    -1,  2770,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,  2588,
      -1,    -1,    -1,    -1,    -1,    -1,  2792,  2793,    -1,   322,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2813,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2823,    -1,    -1,
    2826,    -1,  2828,    -1,    -1,    -1,  2402,    -1,    -1,    -1,
      -1,  2837,    -1,    -1,    -1,    -1,    -1,  2843,    -1,    -1,
    2846,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2866,    -1,    -1,    -1,  2440,  2441,    -1,  2443,  2874,    -1,
    2876,    -1,    -1,    -1,    -1,    -1,   166,   410,   411,   412,
     170,   414,   415,   416,   417,   418,   419,    -1,    -1,    -1,
      -1,    -1,    -1,  2899,    -1,    -1,    -1,    -1,  2402,  2905,
    2709,   191,   192,    -1,    -1,  2911,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   206,  2493,    -1,  2495,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2440,  2441,    -1,  2443,
      -1,   231,    -1,  2752,   234,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   247,    -1,    -1,
     250,    -1,    -1,  2539,  2773,  2774,    -1,  2776,    -1,    -1,
    2779,  2780,  2781,  2782,  2783,  2784,  2785,  2786,  2787,  2788,
    2789,    -1,    -1,     8,  2560,    -1,    11,    -1,    -1,  2493,
      -1,  2495,    -1,    -1,     8,    -1,    -1,    11,    -1,    -1,
      -1,    -1,    -1,    28,    -1,  2814,    -1,    -1,  2817,  2585,
    2819,    36,    -1,    -1,    28,  2824,  2825,    42,    -1,    -1,
      -1,    -1,    36,    -1,    -1,    -1,    -1,  2603,    42,  2838,
    2839,  2840,   322,  2842,    -1,  2539,  2845,    -1,    -1,    -1,
      -1,    66,    -1,     8,    -1,    -1,    11,    -1,    -1,    -1,
      -1,    -1,    66,    -1,    -1,    -1,  2560,    -1,    -1,    -1,
      -1,    -1,    -1,    28,    -1,    -1,    31,    -1,    -1,    -1,
      -1,    36,    -1,  2882,    -1,    -1,    -1,    42,    -1,    -1,
      -1,  2585,    -1,  2892,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2667,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2603,
      -1,    66,    -1,    -1,  2680,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2923,  2691,    -1,    -1,    -1,    -1,
     410,   411,   412,    -1,   414,   415,   416,   417,   418,   419,
      -1,    -1,    -1,    -1,    -1,    -1,   150,    -1,    -1,    -1,
      -1,   166,    -1,    -1,    -1,   170,    -1,    -1,    -1,    -1,
      -1,    -1,   166,    -1,    -1,    -1,   170,    -1,    -1,    -1,
      -1,    -1,    -1,  2667,  3170,  3171,   191,   192,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2680,   191,   192,    -1,
    2756,   206,    -1,    -1,    -1,    -1,    -1,  2691,    -1,    -1,
      -1,    -1,   206,    -1,    -1,    -1,    -1,    -1,    -1,  2775,
      -1,   166,    -1,    -1,    -1,   170,   231,    -1,    -1,   234,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   231,    -1,    -1,
     234,  3227,   247,    -1,  2800,   250,   191,   192,    -1,    -1,
      -1,    -1,    -1,   247,    -1,    -1,   250,    -1,    -1,   264,
      -1,   206,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2756,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2836,    -1,    -1,    -1,    -1,    -1,   231,  3273,  3274,   234,
      -1,  2775,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3286,    -1,   247,    -1,    -1,   250,  3292,  3293,    -1,    -1,
    3296,    -1,    -1,    -1,    -1,    -1,  2800,   322,    -1,    -1,
    3109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3324,    -1,
      -1,    -1,    -1,  3329,    -1,     8,    -1,    -1,    11,    -1,
      -1,    -1,  2836,    -1,    -1,  3341,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    31,    -1,
      -1,    -1,    -1,    36,    -1,    -1,    -1,   322,    -1,    42,
      -1,    -1,    -1,    -1,    -1,  3371,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    66,    -1,   410,   411,   412,    -1,   414,
     415,   416,   417,   418,   419,    -1,   410,   411,   412,    -1,
     414,   415,   416,   417,   418,   419,    -1,    -1,    -1,    -1,
      -1,    -1,  2988,    -1,    -1,    -1,    -1,    -1,    -1,  3228,
      -1,    -1,  3231,  3232,  3233,    -1,    -1,  3236,    -1,    -1,
      -1,    -1,  3241,  3242,  3243,  3244,  3245,  3246,  3247,  3248,
    3249,  3250,  3251,  3252,    -1,   410,   411,   412,    -1,   414,
     415,   416,   417,   418,   419,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3280,  3281,  3282,  3283,    -1,  3285,    -1,    -1,    -1,
    3289,  3290,  3291,   166,  2988,  3294,    -1,   170,  3297,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3513,   191,   192,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3326,    -1,    -1,
      -1,    -1,    -1,   206,    -1,    -1,    -1,    -1,    -1,  3338,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3352,     0,    -1,    -1,    -1,   231,    -1,
      -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    14,  3135,
      -1,    -1,    -1,    -1,   247,    -1,    -1,   250,    24,    -1,
      26,    27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3169,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    61,    -1,    63,    64,    -1,
      -1,    -1,    -1,    69,    -1,    71,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3629,    -1,    81,    -1,    83,    -1,    -1,
      -1,  3135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   322,
      -1,    -1,    -1,    99,    -1,    -1,   102,    -1,  3654,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,
     116,    -1,    -1,    -1,   120,  3169,    -1,    -1,    -1,    -1,
     126,    -1,    -1,    -1,    -1,    -1,    -1,   133,    -1,   135,
      -1,    -1,    -1,    -1,    -1,   141,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,
    3276,    -1,    -1,    -1,    -1,    -1,    -1,  3516,    -1,    -1,
      -1,  3287,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   410,   411,   412,
      -1,   414,   415,   416,   417,   418,   419,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,     8,   208,   209,    11,    -1,  3565,  3566,   214,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   222,    -1,    -1,    -1,
      -1,    28,  3276,    -1,    -1,    -1,    -1,   233,    -1,    36,
      -1,    -1,    -1,  3287,    -1,    42,  3595,    -1,    -1,    -1,
    3599,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3613,  3811,  3615,    -1,    -1,    66,
    3386,  3620,  3621,  3622,   270,    -1,  3625,  3626,  3627,  3628,
      -1,  3630,    -1,    -1,  3830,   281,    -1,    -1,    -1,    -1,
     286,  3407,   288,    -1,    -1,    -1,    -1,   293,    -1,    -1,
      -1,    -1,   298,  3419,    -1,   301,    -1,    -1,    -1,   305,
      -1,    -1,    -1,    -1,   310,   311,    -1,    -1,    -1,    -1,
      -1,    -1,   318,    -1,    -1,   321,     8,  3676,    -1,    11,
      -1,    -1,   328,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3457,  3386,    -1,   340,    -1,    28,    -1,    -1,    31,
      -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,
      42,   357,    -1,  3407,    -1,    -1,  3912,    -1,    -1,   166,
     366,    -1,    -1,   170,    -1,  3419,   372,    -1,    -1,    -1,
      -1,   377,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   389,   191,   192,    -1,    -1,    -1,  3748,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   206,
      -1,    -1,    -1,  3457,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,
     426,    -1,    -1,    -1,   231,    -1,  3982,   234,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     247,    -1,    -1,   250,    -1,    -1,    -1,    -1,  3807,  3808,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3823,  3824,  3825,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   166,    -1,    -1,  3603,   170,    -1,
      -1,    -1,    -1,  3842,    -1,  4041,  4042,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,
     192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   206,   322,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  4087,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   231,
     347,  4097,   234,    -1,    -1,    -1,    -1,    -1,    -1,  3603,
      -1,    -1,    -1,    -1,    -1,   247,    -1,    -1,   250,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3702,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3947,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3957,    -1,
    4156,    -1,    -1,   410,   411,   412,    -1,   414,   415,   416,
     417,   418,   419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3702,    -1,
      -1,    -1,    -1,    -1,    -1,  4014,    -1,    -1,    -1,    -1,
      -1,    -1,  3788,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3809,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  4053,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3839,    -1,    -1,    -1,    -1,   410,   411,
     412,    -1,   414,   415,   416,   417,   418,   419,    -1,    -1,
      -1,  4090,    -1,    -1,  3788,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3873,    -1,    -1,
      -1,  3877,  3878,    -1,    -1,  3809,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  4135,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3839,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,    -1,    -1,    14,    15,    16,    17,
      18,    19,    20,    21,    22,    23,    24,    25,    -1,  3873,
      -1,    -1,    30,  3877,  3878,    33,    34,    -1,    36,    37,
      38,    39,    40,    41,    42,    43,    44,    45,    46,    -1,
      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
      58,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    79,    80,    81,    82,    -1,    84,    85,    86,    87,
      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
      98,    99,   100,   101,   102,    -1,   104,    -1,   106,   107,
     108,   109,   110,    -1,   112,   113,   114,   115,    -1,   117,
     118,   119,   120,   121,    -1,   123,   124,   125,    -1,   127,
     128,    -1,   130,   131,   132,   133,   134,   135,   136,   137,
     138,   139,   140,    -1,   142,   143,   144,    -1,   146,    -1,
     148,   149,    -1,   151,   152,   153,   154,    -1,   156,   157,
      -1,   159,    -1,   161,   162,   163,   164,   165,   166,   167,
     168,   169,    -1,   171,   172,   173,   174,   175,   176,    -1,
     178,   179,   180,   181,   182,   183,   184,   185,   186,    -1,
     188,    -1,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,   200,   201,    -1,   203,   204,   205,   206,    -1,
     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
     238,   239,   240,   241,   242,    -1,   244,    -1,    -1,   247,
     248,   249,    -1,    -1,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,    -1,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,   284,    -1,   286,   287,
     288,   289,   290,   291,   292,   293,   294,   295,    -1,   297,
     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
     308,   309,   310,    -1,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,   332,   333,   334,   335,   336,    -1,
     338,   339,    -1,   341,   342,   343,   344,   345,   346,    -1,
     348,   349,    -1,    -1,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,    -1,   364,   365,   366,   367,
     368,   369,   370,    -1,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
      -1,    -1,   390,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   414,   415,   416,    -1,
      -1,    -1,    -1,    -1,    -1,   423,   424,     3,     4,     5,
       6,     7,     8,     9,    10,    -1,    -1,    -1,    14,    15,
      16,    17,    18,    19,    20,    21,    -1,    23,    24,    25,
      -1,    -1,    -1,    -1,    30,    -1,    -1,    33,    34,    -1,
      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
      46,    -1,    48,    49,    50,    51,    52,    53,    54,    55,
      56,    57,    58,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    79,    80,    81,    82,    -1,    84,    85,
      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
      96,    97,    98,    99,   100,   101,   102,    -1,   104,    -1,
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
      -1,   117,   118,   119,   120,   121,    -1,   123,   124,   125,
      -1,   127,   128,    -1,   130,   131,   132,   133,   134,   135,
     136,   137,   138,   139,   140,    -1,   142,   143,   144,    -1,
     146,    -1,   148,   149,    -1,   151,   152,   153,   154,    -1,
     156,   157,    -1,   159,    -1,   161,   162,   163,   164,   165,
     166,   167,   168,   169,    -1,   171,   172,   173,   174,   175,
     176,    -1,   178,   179,   180,   181,   182,   183,   184,   185,
     186,    -1,   188,    -1,   190,   191,   192,   193,   194,   195,
     196,   197,   198,   199,   200,   201,    -1,   203,   204,   205,
     206,    -1,   208,   209,   210,   211,   212,   213,   214,   215,
     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
     236,   237,   238,   239,   240,   241,   242,    -1,   244,    -1,
      -1,   247,   248,   249,    -1,    -1,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,    -1,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,   275,
     276,   277,   278,   279,   280,   281,   282,   283,   284,    -1,
     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
      -1,   297,   298,   299,   300,   301,   302,   303,   304,   305,
     306,   307,   308,   309,   310,    -1,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,   324,    -1,
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
     336,    -1,   338,   339,    -1,   341,   342,   343,   344,   345,
     346,    -1,   348,   349,    -1,    -1,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,    -1,   364,   365,
     366,   367,   368,   369,   370,    -1,   372,   373,   374,   375,
     376,   377,   378,    -1,   380,   381,   382,   383,   384,    -1,
      -1,   387,    -1,    -1,   390,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,   415,
       3,    -1,    -1,    -1,    -1,    -1,    -1,   423,   424,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    31,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    84,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,   151,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,   179,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,   204,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   424,    14,    15,    16,    17,    18,    19,    20,    21,
      -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    33,    34,    -1,    36,    37,    -1,    39,    40,    41,
      42,    43,    -1,    45,    46,    -1,    48,    49,    50,    51,
      52,    -1,    -1,    55,    56,    57,    58,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    -1,    69,    70,    71,
      72,    -1,    74,    75,    -1,    77,    78,    79,    80,    81,
      82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    97,    98,    99,   100,   101,
     102,    -1,   104,    -1,   106,   107,   108,   109,   110,    -1,
     112,   113,   114,    -1,    -1,   117,   118,   119,   120,   121,
      -1,   123,   124,   125,    -1,   127,   128,    -1,   130,   131,
     132,   133,   134,   135,   136,   137,   138,    -1,   140,    -1,
     142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,
     152,   153,   154,    -1,   156,   157,    -1,   159,    -1,   161,
     162,   163,   164,   165,    -1,   167,   168,   169,    -1,   171,
     172,   173,   174,   175,   176,    -1,   178,    -1,   180,   181,
     182,   183,   184,   185,   186,    -1,   188,    -1,   190,    -1,
      -1,   193,    -1,   195,   196,   197,   198,   199,   200,   201,
      -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,
      -1,   213,   214,   215,   216,   217,   218,   219,   220,   221,
     222,   223,   224,   225,    -1,   227,   228,   229,   230,    -1,
     232,   233,    -1,   235,    -1,   237,   238,   239,   240,   241,
     242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,
     252,    -1,    -1,    -1,   256,   257,   258,   259,   260,   261,
     262,   263,    -1,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,   275,   276,   277,   278,   279,   280,   281,
     282,   283,   284,    -1,   286,   287,   288,   289,   290,   291,
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,   310,    -1,
     312,   313,   314,   315,   316,    -1,   318,   319,   320,   321,
      -1,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
     332,   333,   334,   335,   336,    -1,   338,   339,    -1,   341,
     342,   343,   344,   345,   346,    -1,   348,   349,    -1,    -1,
     352,   353,   354,   355,    -1,   357,   358,   359,   360,   361,
     362,    -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,
     372,   373,   374,   375,   376,   377,   378,    -1,   380,    -1,
     382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   424,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    38,    39,    40,
      41,    -1,    43,    44,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    -1,    -1,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    84,    85,    86,    -1,    -1,    -1,    90,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,    -1,   135,   136,   137,    -1,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,   149,    -1,
     151,   152,   153,   154,    -1,   156,    -1,    -1,   159,    -1,
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
     171,   172,   173,   174,   175,   176,    -1,   178,   179,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
     201,    -1,    -1,   204,   205,   206,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,    -1,
      -1,   232,   233,   234,   235,    -1,    -1,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,   253,   254,   255,    -1,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,    -1,   267,    -1,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,   299,   300,
     301,    -1,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,   322,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,    -1,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,    -1,   354,    -1,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,    -1,   378,   379,   380,
     381,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,    -1,     3,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   404,   405,   406,    14,    15,    16,    17,
      18,    19,    20,    21,    -1,    23,    24,    25,    -1,    -1,
      -1,    -1,    -1,   424,    -1,    33,    34,    -1,    36,    37,
      38,    39,    40,    41,    -1,    43,    44,    45,    46,    -1,
      48,    49,    50,    51,    52,    -1,    -1,    55,    56,    57,
      58,    59,    -1,    61,    62,    63,    64,    -1,    -1,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    79,    80,    81,    82,    -1,    84,    85,    86,    -1,
      -1,    -1,    90,    -1,    -1,    -1,    94,    95,    96,    97,
      98,    99,   100,   101,   102,    -1,   104,    -1,   106,   107,
     108,   109,   110,    -1,   112,   113,   114,    -1,    -1,   117,
     118,   119,   120,   121,    -1,   123,   124,   125,    -1,   127,
     128,    -1,   130,   131,   132,   133,    -1,   135,   136,   137,
      -1,    -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,
     148,   149,    -1,   151,   152,   153,   154,    -1,   156,    -1,
      -1,   159,    -1,   161,   162,   163,   164,   165,   166,   167,
     168,   169,   170,   171,   172,   173,   174,   175,   176,    -1,
     178,   179,   180,   181,   182,   183,   184,   185,   186,    -1,
     188,    -1,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,   200,   201,    -1,    -1,   204,   205,   206,    -1,
     208,   209,   210,    -1,    -1,   213,   214,   215,   216,   217,
     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
     228,   229,    -1,    -1,   232,   233,   234,   235,    -1,    -1,
     238,   239,   240,   241,   242,    -1,   244,    -1,    -1,   247,
     248,   249,    -1,    -1,   252,   253,   254,   255,    -1,   257,
     258,   259,   260,   261,   262,   263,    -1,   265,    -1,   267,
      -1,   269,   270,   271,    -1,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,   284,    -1,   286,   287,
     288,   289,   290,   291,   292,   293,   294,   295,    -1,   297,
     298,   299,   300,   301,    -1,   303,   304,   305,   306,   307,
     308,   309,   310,    -1,   312,   313,   314,   315,   316,    -1,
     318,   319,   320,   321,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,   332,   333,   334,   335,    -1,    -1,
     338,   339,    -1,   341,   342,   343,   344,   345,   346,    -1,
     348,   349,    -1,    -1,   352,    -1,   354,    -1,    -1,   357,
     358,   359,   360,   361,   362,    -1,    -1,   365,   366,   367,
     368,   369,    -1,    -1,   372,   373,   374,   375,   376,    -1,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
      -1,    -1,   390,   391,   392,   393,   394,    -1,     3,     4,
       5,     6,     7,     8,     9,    10,   404,   405,   406,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    30,   424,    -1,    33,    34,
      -1,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,   166,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,   179,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,    -1,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,    -1,   364,
     365,   366,   367,   368,   369,   370,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,   381,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,
     415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,     3,
       4,     5,     6,     7,     8,     9,    10,    -1,    -1,    -1,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    30,    -1,    -1,    33,
      34,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    -1,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,   139,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,   149,    -1,   151,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,   179,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
     204,   205,   206,    -1,   208,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
     234,   235,   236,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,   340,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,    -1,
     364,   365,   366,   367,   368,   369,   370,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,   381,   382,   383,
     384,    -1,    -1,   387,    -1,   389,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     414,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    30,    -1,    -1,
      33,    34,    -1,    36,    37,    38,    39,    40,    41,    42,
      43,    44,    45,    46,    -1,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    84,    85,    86,    87,    88,    89,    90,    91,    92,
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,   139,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,   149,    -1,   151,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,   166,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,   179,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,   204,   205,   206,    -1,   208,   209,   210,   211,   212,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
      -1,   364,   365,   366,   367,   368,   369,   370,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,   381,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   414,   415,    -1,    -1,    -1,    -1,    -1,   421,   422,
     423,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
      -1,    -1,    14,    15,    16,    17,    18,    19,    20,    21,
      -1,    23,    24,    25,    -1,    -1,    -1,    -1,    30,    -1,
      -1,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
      42,    43,    44,    45,    46,    -1,    48,    49,    50,    51,
      52,    53,    54,    55,    56,    57,    58,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    79,    80,    81,
      82,    -1,    84,    85,    86,    87,    88,    89,    90,    91,
      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
     102,    -1,   104,    -1,   106,   107,   108,   109,   110,    -1,
     112,   113,   114,    -1,    -1,   117,   118,   119,   120,   121,
      -1,   123,   124,   125,    -1,   127,   128,    -1,   130,   131,
     132,   133,   134,   135,   136,   137,   138,   139,   140,    -1,
     142,   143,   144,    -1,   146,    -1,   148,   149,    -1,   151,
     152,   153,   154,    -1,   156,   157,    -1,   159,    -1,   161,
     162,   163,   164,   165,   166,   167,   168,   169,    -1,   171,
     172,   173,   174,   175,   176,    -1,   178,   179,   180,   181,
     182,   183,   184,   185,   186,    -1,   188,    -1,   190,   191,
     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
      -1,   203,   204,   205,   206,    -1,   208,   209,   210,   211,
     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
     242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,    -1,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,   275,   276,   277,   278,   279,   280,   281,
     282,   283,   284,    -1,   286,   287,   288,   289,   290,   291,
     292,   293,   294,   295,    -1,   297,   298,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,   310,    -1,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
     332,   333,   334,   335,   336,    -1,   338,   339,    -1,   341,
     342,   343,   344,   345,   346,    -1,   348,   349,    -1,    -1,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,    -1,   364,   365,   366,   367,   368,   369,   370,    -1,
     372,   373,   374,   375,   376,   377,   378,    -1,   380,   381,
     382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   414,   415,   416,    -1,    -1,    -1,    -1,    -1,
      -1,   423,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    30,
      -1,    -1,    33,    34,    -1,    36,    37,    38,    39,    40,
      41,    42,    43,    44,    45,    46,    -1,    48,    49,    50,
      51,    52,    53,    54,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    84,    85,    86,    87,    88,    89,    90,
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
     101,   102,   103,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,   149,    -1,
     151,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,   166,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,   179,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,   204,   205,   206,    -1,   208,   209,   210,
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,    -1,   364,   365,   366,   367,   368,   369,   370,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
     381,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   414,   415,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   423,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    14,    15,    16,    17,    18,    19,
      20,    21,    22,    23,    24,    25,    -1,    -1,    -1,    -1,
      30,    -1,    -1,    33,    34,    -1,    36,    37,    38,    39,
      40,    41,    42,    43,    44,    45,    46,    -1,    48,    49,
      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    79,
      80,    81,    82,    -1,    84,    85,    86,    87,    88,    89,
      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
     100,   101,   102,    -1,   104,    -1,   106,   107,   108,   109,
     110,    -1,   112,   113,   114,    -1,    -1,   117,   118,   119,
     120,   121,    -1,   123,   124,   125,    -1,   127,   128,    -1,
     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
     140,    -1,   142,   143,   144,    -1,   146,    -1,   148,   149,
      -1,   151,   152,   153,   154,    -1,   156,   157,    -1,   159,
      -1,   161,   162,   163,   164,   165,   166,   167,   168,   169,
      -1,   171,   172,   173,   174,   175,   176,    -1,   178,   179,
     180,   181,   182,   183,   184,   185,   186,    -1,   188,    -1,
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
     200,   201,    -1,   203,   204,   205,   206,    -1,   208,   209,
     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
     240,   241,   242,    -1,   244,    -1,    -1,   247,   248,   249,
      -1,    -1,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,    -1,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,   275,   276,   277,   278,   279,
     280,   281,   282,   283,   284,    -1,   286,   287,   288,   289,
     290,   291,   292,   293,   294,   295,    -1,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
     310,    -1,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,   322,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,   332,   333,   334,   335,   336,    -1,   338,   339,
      -1,   341,   342,   343,   344,   345,   346,    -1,   348,   349,
      -1,    -1,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,    -1,   364,   365,   366,   367,   368,   369,
     370,    -1,   372,   373,   374,   375,   376,   377,   378,    -1,
     380,   381,   382,   383,   384,    -1,    -1,   387,    -1,    -1,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   414,   415,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   423,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    30,    -1,    -1,    33,    34,    -1,    36,    37,    38,
      39,    40,    41,    42,    43,    44,    45,    46,    -1,    48,
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    84,    85,    86,    87,    88,
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
     139,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
     149,   150,   151,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,   166,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
     179,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,   204,   205,   206,    -1,   208,
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,    -1,   364,   365,   366,   367,   368,
     369,   370,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,   381,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   414,   415,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   423,     3,     4,     5,     6,     7,
       8,     9,    10,    -1,    -1,    -1,    14,    15,    16,    17,
      18,    19,    20,    21,    -1,    23,    24,    25,    -1,    -1,
      -1,    -1,    30,    -1,    -1,    33,    34,    -1,    36,    37,
      38,    39,    40,    41,    42,    43,    44,    45,    46,    -1,
      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
      58,    59,    -1,    61,    62,    63,    64,    65,    -1,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    79,    80,    81,    82,    -1,    84,    85,    86,    87,
      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
      98,    99,   100,   101,   102,    -1,   104,    -1,   106,   107,
     108,   109,   110,    -1,   112,   113,   114,    -1,    -1,   117,
     118,   119,   120,   121,    -1,   123,   124,   125,    -1,   127,
     128,    -1,   130,   131,   132,   133,   134,   135,   136,   137,
     138,   139,   140,    -1,   142,   143,   144,    -1,   146,    -1,
     148,   149,    -1,   151,   152,   153,   154,    -1,   156,   157,
      -1,   159,    -1,   161,   162,   163,   164,   165,   166,   167,
     168,   169,    -1,   171,   172,   173,   174,   175,   176,    -1,
     178,   179,   180,   181,   182,   183,   184,   185,   186,    -1,
     188,    -1,   190,   191,   192,   193,   194,   195,   196,   197,
     198,   199,   200,   201,    -1,   203,   204,   205,   206,    -1,
     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
     238,   239,   240,   241,   242,    -1,   244,    -1,    -1,   247,
     248,   249,    -1,    -1,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,    -1,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,   284,    -1,   286,   287,
     288,   289,   290,   291,   292,   293,   294,   295,    -1,   297,
     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
     308,   309,   310,    -1,   312,   313,   314,   315,   316,   317,
     318,   319,   320,   321,   322,   323,   324,    -1,   326,   327,
     328,   329,   330,   331,   332,   333,   334,   335,   336,    -1,
     338,   339,    -1,   341,   342,   343,   344,   345,   346,    -1,
     348,   349,    -1,    -1,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,    -1,   364,   365,   366,   367,
     368,   369,   370,    -1,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,    -1,    -1,   387,
      -1,    -1,   390,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,   403,   404,   405,   406,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   414,   415,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   423,     3,     4,     5,     6,
       7,     8,     9,    10,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    30,    -1,    -1,    33,    34,    -1,    36,
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
      -1,    48,    49,    50,    51,    52,    53,    54,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    73,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    84,    85,    86,
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,   139,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,   149,    -1,   151,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,   166,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,   179,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,   204,   205,   206,
      -1,   208,   209,   210,   211,   212,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,    -1,   364,   365,   366,
     367,   368,   369,   370,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,   381,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,   415,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   423,     3,     4,     5,
       6,     7,     8,     9,    10,    -1,    -1,    -1,    14,    15,
      16,    17,    18,    19,    20,    21,    -1,    23,    24,    25,
      -1,    -1,    -1,    -1,    30,    -1,    -1,    33,    34,    -1,
      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
      46,    -1,    48,    49,    50,    51,    52,    53,    54,    55,
      56,    57,    58,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    79,    80,    81,    82,    -1,    84,    85,
      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
      96,    97,    98,    99,   100,   101,   102,    -1,   104,    -1,
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
      -1,   117,   118,   119,   120,   121,    -1,   123,   124,   125,
      -1,   127,   128,    -1,   130,   131,   132,   133,   134,   135,
     136,   137,   138,   139,   140,    -1,   142,   143,   144,    -1,
     146,    -1,   148,   149,    -1,   151,   152,   153,   154,    -1,
     156,   157,    -1,   159,    -1,   161,   162,   163,   164,   165,
     166,   167,   168,   169,    -1,   171,   172,   173,   174,   175,
     176,    -1,   178,   179,   180,   181,   182,   183,   184,   185,
     186,    -1,   188,    -1,   190,   191,   192,   193,   194,   195,
     196,   197,   198,   199,   200,   201,    -1,   203,   204,   205,
     206,    -1,   208,   209,   210,   211,   212,   213,   214,   215,
     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
     236,   237,   238,   239,   240,   241,   242,    -1,   244,    -1,
      -1,   247,   248,   249,    -1,    -1,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,   263,    -1,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,   275,
     276,   277,   278,   279,   280,   281,   282,   283,   284,    -1,
     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
      -1,   297,   298,   299,   300,   301,   302,   303,   304,   305,
     306,   307,   308,   309,   310,    -1,   312,   313,   314,   315,
     316,   317,   318,   319,   320,   321,   322,   323,   324,    -1,
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
     336,    -1,   338,   339,    -1,   341,   342,   343,   344,   345,
     346,    -1,   348,   349,    -1,    -1,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,    -1,   364,   365,
     366,   367,   368,   369,   370,    -1,   372,   373,   374,   375,
     376,   377,   378,    -1,   380,   381,   382,   383,   384,    -1,
      -1,   387,    -1,    -1,   390,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,   415,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    30,    -1,    -1,    33,    34,
      -1,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    -1,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,   149,    -1,   151,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,   166,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,   179,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,   204,
     205,   206,    -1,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,    -1,   364,
     365,   366,   367,   368,   369,   370,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,   381,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,
     415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,     3,
       4,     5,     6,     7,     8,     9,    10,    -1,    -1,    -1,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    30,    -1,    -1,    33,
      34,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    -1,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,   139,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,   149,    -1,   151,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,   179,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
     204,   205,   206,    -1,   208,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
     234,   235,   236,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,    -1,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,    -1,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,    -1,
     364,   365,   366,   367,   368,   369,   370,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,   381,   382,   383,
     384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     414,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
       3,     4,     5,     6,     7,     8,     9,    10,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    30,    -1,    -1,
      33,    34,    -1,    36,    37,    38,    39,    40,    41,    42,
      43,    44,    45,    46,    -1,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    84,    85,    86,    87,    88,    89,    90,    91,    92,
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,   139,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,   149,    -1,   151,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,   166,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,   179,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,   204,   205,   206,    -1,   208,   209,   210,   211,   212,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
      -1,   364,   365,   366,   367,   368,   369,   370,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,   381,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   414,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     423,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
      -1,    -1,    14,    15,    16,    17,    18,    19,    20,    21,
      -1,    23,    24,    25,    -1,    -1,    -1,    -1,    30,    -1,
      -1,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
      42,    43,    44,    45,    46,    -1,    48,    49,    50,    51,
      52,    53,    54,    55,    56,    57,    58,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    79,    80,    81,
      82,    -1,    84,    85,    86,    87,    88,    89,    90,    91,
      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
     102,    -1,   104,    -1,   106,   107,   108,   109,   110,    -1,
     112,   113,   114,    -1,    -1,   117,   118,   119,   120,   121,
      -1,   123,   124,   125,    -1,   127,   128,    -1,   130,   131,
     132,   133,   134,   135,   136,   137,   138,   139,   140,    -1,
     142,   143,   144,    -1,   146,    -1,   148,   149,    -1,   151,
     152,   153,   154,    -1,   156,   157,    -1,   159,    -1,   161,
     162,   163,   164,   165,   166,   167,   168,   169,    -1,   171,
     172,   173,   174,   175,   176,    -1,   178,   179,   180,   181,
     182,   183,   184,   185,   186,    -1,   188,    -1,   190,   191,
     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
      -1,   203,   204,   205,   206,    -1,   208,   209,   210,   211,
     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
     242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,    -1,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,   275,   276,   277,   278,   279,   280,   281,
     282,   283,   284,    -1,   286,   287,   288,   289,   290,   291,
     292,   293,   294,   295,    -1,   297,   298,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,   310,    -1,
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
     322,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
     332,   333,   334,   335,   336,    -1,   338,   339,    -1,   341,
     342,   343,   344,   345,   346,    -1,   348,   349,    -1,    -1,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,    -1,   364,   365,   366,   367,   368,   369,   370,    -1,
     372,   373,   374,   375,   376,   377,   378,    -1,   380,   381,
     382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   414,   415,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   423,     3,     4,     5,     6,     7,     8,     9,    10,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    30,
      -1,    -1,    33,    34,    -1,    36,    37,    38,    39,    40,
      41,    42,    43,    44,    45,    46,    -1,    48,    49,    50,
      51,    52,    53,    54,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    84,    85,    86,    87,    88,    89,    90,
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,   149,    -1,
     151,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,   166,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,   179,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,   204,   205,   206,    -1,   208,   209,   210,
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
      -1,   232,   233,   234,   235,   236,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,   370,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
     381,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   414,   415,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   423,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    14,    15,    16,    17,    18,    19,
      20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,
      30,    -1,    -1,    33,    34,    -1,    36,    37,    38,    39,
      40,    41,    42,    43,    44,    45,    46,    -1,    48,    49,
      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    79,
      80,    81,    82,    -1,    84,    85,    86,    87,    88,    89,
      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
     100,   101,   102,    -1,   104,    -1,   106,   107,   108,   109,
     110,    -1,   112,   113,   114,    -1,    -1,   117,   118,   119,
     120,   121,    -1,   123,   124,   125,    -1,   127,   128,    -1,
     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
     140,    -1,   142,   143,   144,    -1,   146,    -1,   148,   149,
      -1,   151,   152,   153,   154,    -1,   156,   157,    -1,   159,
      -1,   161,   162,   163,   164,   165,    -1,   167,   168,   169,
      -1,   171,   172,   173,   174,   175,   176,    -1,   178,   179,
     180,   181,   182,   183,   184,   185,   186,    -1,   188,    -1,
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
     200,   201,    -1,   203,   204,   205,    -1,    -1,   208,   209,
     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
     230,    -1,   232,   233,   234,   235,   236,   237,   238,   239,
     240,   241,   242,    -1,   244,    -1,    -1,   247,   248,   249,
      -1,    -1,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,    -1,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,   275,   276,   277,   278,   279,
     280,   281,   282,   283,   284,    -1,   286,   287,   288,   289,
     290,   291,   292,   293,   294,   295,    -1,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
     310,    -1,   312,   313,   314,   315,   316,   317,   318,   319,
     320,   321,    -1,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,   332,   333,   334,   335,   336,    -1,   338,   339,
      -1,   341,   342,   343,   344,   345,   346,    -1,   348,   349,
      -1,    -1,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,    -1,   364,   365,   366,   367,   368,   369,
     370,    -1,   372,   373,   374,   375,   376,   377,   378,    -1,
     380,   381,   382,   383,   384,    -1,    -1,   387,    -1,    -1,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   414,   415,    -1,    -1,     3,     4,
       5,     6,     7,   423,     9,    10,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    30,    -1,    -1,    33,    34,
      -1,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    -1,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,   149,    -1,   151,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,   166,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,   179,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,   204,
     205,   206,    -1,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,    -1,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,   370,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,   381,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
       5,     6,     7,    -1,     9,    10,    -1,    -1,   423,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    30,    -1,    -1,    33,    34,
      -1,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    -1,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,   149,    -1,   151,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,   166,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,   179,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,   204,
     205,   206,    -1,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,    -1,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,   370,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,   381,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,   423,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    30,    -1,    -1,    33,    34,
      -1,    36,    37,    38,    39,    40,    41,    -1,    43,    44,
      45,    46,    -1,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,    -1,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,   149,    -1,   151,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,   179,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,   204,
     205,    -1,    -1,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,    -1,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,    -1,   364,
     365,   366,   367,   368,   369,   370,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,   381,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,
     415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,     3,
       4,     5,     6,     7,     8,     9,    10,    -1,    -1,    -1,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    30,    -1,    -1,    33,
      34,    -1,    36,    37,    38,    39,    40,    41,    -1,    43,
      44,    45,    46,    -1,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,    -1,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,   139,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,   149,    -1,   151,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,    -1,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,   179,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
     204,   205,    -1,    -1,   208,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,   230,    -1,   232,   233,
     234,   235,   236,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,    -1,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,    -1,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,    -1,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,   370,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,   381,   382,   383,
     384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     414,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
      34,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
      54,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,    -1,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,   149,    -1,   151,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,   179,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
     204,   205,   206,    -1,   208,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,   230,    -1,   232,   233,
     234,   235,    -1,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,   246,   247,   248,   249,    -1,    -1,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,   340,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,    -1,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,   370,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,   381,   382,   383,
     384,    -1,    -1,   387,    -1,   389,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
      34,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
      54,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,    -1,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,   149,    -1,   151,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,   179,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
     204,   205,   206,    -1,   208,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,   230,    -1,   232,   233,
     234,   235,    -1,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,   246,   247,   248,   249,    -1,    -1,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,    -1,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,    -1,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,    -1,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,   370,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,   381,   382,   383,
     384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
      34,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
      54,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,    -1,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,   149,    -1,   151,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,   179,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
     204,   205,   206,    -1,   208,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,   230,    -1,   232,   233,
     234,   235,    -1,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,    -1,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,    -1,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,    -1,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,   370,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,   381,   382,   383,
     384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
      34,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
      44,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
      -1,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      84,    85,    86,    -1,    -1,    -1,    90,    -1,    -1,    -1,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,    -1,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,   149,    -1,   151,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,   179,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
     204,   205,   206,    -1,   208,   209,   210,    -1,    -1,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,   230,    -1,   232,   233,
     234,   235,    -1,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,    -1,   312,   313,
     314,   315,   316,    -1,   318,   319,   320,   321,   322,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,    -1,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,    -1,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,    -1,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,   381,   382,   383,
     384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
       4,     5,    -1,    -1,    -1,     9,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
      34,    -1,    36,    37,    -1,    39,    40,    41,    42,    43,
      -1,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
      -1,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    -1,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,   139,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,    -1,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,
      -1,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
      -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,    -1,   227,   228,   229,   230,    -1,   232,   233,
      -1,   235,    -1,   237,   238,   239,   240,   241,   242,    -1,
     244,   245,    -1,   247,   248,   249,    -1,    -1,   252,    -1,
      -1,    -1,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,    -1,   312,   313,
     314,   315,   316,    -1,   318,   319,   320,   321,    -1,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,    -1,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,    -1,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,    -1,   382,   383,
     384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     414,   415,   416,    -1,    -1,    -1,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,    33,
      34,    -1,    36,    37,    -1,    39,    40,    41,    42,    43,
      -1,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
      -1,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    -1,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,    -1,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,    -1,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,
      -1,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
      -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,    -1,   227,   228,   229,   230,    -1,   232,   233,
      -1,   235,    -1,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,
      -1,    -1,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,    -1,   318,   319,   320,   321,    -1,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,   340,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,    -1,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,    -1,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,   381,   382,   383,
     384,    -1,    -1,   387,    -1,   389,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
      34,    -1,    36,    37,    -1,    39,    40,    41,    42,    43,
      -1,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
      -1,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    -1,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,    -1,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,    -1,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,
      -1,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
      -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,    -1,   227,   228,   229,   230,    -1,   232,   233,
      -1,   235,    -1,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,
      -1,    -1,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,    -1,   318,   319,   320,   321,    -1,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,   340,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,    -1,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,    -1,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,    -1,   382,   383,
     384,    -1,    -1,   387,    -1,   389,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
      34,    -1,    36,    37,    -1,    39,    40,    41,    42,    43,
      -1,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
      -1,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    -1,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,    -1,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,    -1,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,
      -1,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
      -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,    -1,   227,   228,   229,   230,    -1,   232,   233,
      -1,   235,    -1,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,
      -1,    -1,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,    -1,   312,   313,
     314,   315,   316,    -1,   318,   319,   320,   321,    -1,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,    -1,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,    -1,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,    -1,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,    -1,   382,   383,
     384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
      34,    -1,    36,    37,    -1,    39,    40,    41,    42,    43,
      -1,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
      -1,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    -1,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,    -1,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,    -1,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,
      -1,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
      -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,    -1,   227,   228,   229,   230,    -1,   232,   233,
      -1,   235,    -1,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,
      -1,    -1,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,    -1,   312,   313,
     314,   315,   316,    -1,   318,   319,   320,   321,    -1,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,    -1,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,    -1,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,    -1,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,    -1,   382,   383,
     384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
      34,    -1,    36,    37,    -1,    39,    40,    41,    42,    43,
      -1,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
      -1,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    -1,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,    -1,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,    -1,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,
      -1,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
      -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,    -1,   227,   228,   229,   230,    -1,   232,   233,
      -1,   235,    -1,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,
      -1,    -1,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,    -1,   312,   313,
     314,   315,   316,    -1,   318,   319,   320,   321,    -1,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,    -1,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,    -1,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,    -1,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,    -1,   382,   383,
     384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    -1,    23,
      24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
      34,    -1,    36,    37,    -1,    39,    40,    41,    42,    43,
      -1,    45,    46,    -1,    48,    49,    50,    51,    52,    -1,
      -1,    55,    56,    57,    58,    59,    -1,    61,    62,    63,
      64,    65,    -1,    67,    -1,    69,    70,    71,    72,    -1,
      74,    75,    -1,    77,    78,    79,    80,    81,    82,    -1,
      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    97,    98,    99,   100,   101,   102,    -1,
     104,    -1,   106,   107,   108,   109,   110,    -1,   112,   113,
     114,    -1,    -1,   117,   118,   119,   120,   121,    -1,   123,
     124,   125,    -1,   127,   128,    -1,   130,   131,   132,   133,
     134,   135,   136,   137,   138,    -1,   140,    -1,   142,   143,
     144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,
     154,    -1,   156,   157,    -1,   159,    -1,   161,   162,   163,
     164,   165,    -1,   167,   168,   169,    -1,   171,   172,   173,
     174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
     184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,
      -1,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
      -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,    -1,   227,   228,   229,   230,    -1,   232,   233,
      -1,   235,    -1,   237,   238,   239,   240,   241,   242,    -1,
     244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,
      -1,    -1,   256,   257,   258,   259,   260,   261,   262,   263,
      -1,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,    -1,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,    -1,   297,   298,    -1,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,   310,    -1,   312,   313,
     314,   315,   316,    -1,   318,   319,   320,   321,    -1,   323,
     324,    -1,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,   336,    -1,   338,   339,    -1,   341,   342,   343,
     344,   345,   346,    -1,   348,   349,    -1,    -1,   352,   353,
     354,   355,    -1,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,   368,   369,    -1,    -1,   372,   373,
     374,   375,   376,   377,   378,    -1,   380,    -1,   382,   383,
     384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
     404,   405,   406,    -1,    -1,    -1,    -1,    -1,    -1,     3,
       4,     5,    -1,    -1,     8,     9,    -1,    -1,    -1,   423,
      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
      34,    35,    36,    37,    38,    39,    40,    41,    -1,    43,
      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
      64,    -1,    66,    67,    68,    69,    70,    71,    72,    73,
      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
     124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
      -1,   135,   136,   137,    -1,   139,   140,   141,   142,   143,
     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
     154,   155,   156,    -1,   158,   159,   160,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
     174,   175,   176,   177,   178,   179,    -1,   181,   182,   183,
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,   196,   197,   198,   199,   200,   201,   202,    -1,
     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,   229,    -1,   231,   232,   233,
     234,   235,   236,    -1,   238,   239,   240,   241,   242,   243,
     244,   245,   246,   247,   248,   249,   250,   251,    -1,   253,
     254,   255,    -1,   257,   258,   259,   260,   261,   262,   263,
     264,   265,    -1,   267,    -1,   269,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     294,   295,   296,   297,   298,   299,   300,   301,    -1,   303,
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
     334,   335,    -1,   337,   338,   339,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,   350,   351,   352,    -1,
     354,    -1,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,   367,   368,   369,   370,   371,   372,   373,
     374,   375,   376,    -1,   378,   379,   380,   381,   382,   383,
     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
     394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     404,   405,   406,    -1,    -1,    -1,   410,   411,   412,    -1,
     414,   415,   416,   417,   418,   419,     3,    -1,    -1,    -1,
      -1,     8,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
      -1,    -1,    -1,   410,   411,   412,    -1,   414,   415,   416,
     417,   418,   419,     3,    -1,    -1,    -1,    -1,     8,    -1,
      -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,    19,
      20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,
      40,    41,    42,    43,    -1,    45,    46,    -1,    48,    49,
      50,    51,    52,    -1,    -1,    55,    56,    57,    58,    59,
      -1,    61,    62,    63,    64,    65,    -1,    67,    -1,    69,
      70,    71,    72,    -1,    74,    75,    -1,    77,    78,    79,
      80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,    99,
     100,   101,   102,    -1,   104,    -1,   106,   107,   108,   109,
     110,    -1,   112,   113,   114,    -1,    -1,   117,   118,   119,
     120,   121,    -1,   123,   124,   125,    -1,   127,   128,    -1,
     130,   131,   132,   133,   134,   135,   136,   137,   138,    -1,
     140,    -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,
      -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,   159,
      -1,   161,   162,   163,   164,   165,    -1,   167,   168,   169,
      -1,   171,   172,   173,   174,   175,   176,    -1,   178,    -1,
     180,   181,   182,   183,   184,   185,   186,    -1,   188,    -1,
     190,    -1,    -1,   193,    -1,   195,   196,   197,   198,   199,
     200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,
     210,    -1,    -1,   213,   214,   215,   216,   217,   218,   219,
     220,   221,   222,   223,   224,   225,    -1,   227,   228,   229,
     230,    -1,   232,   233,    -1,   235,    -1,   237,   238,   239,
     240,   241,   242,    -1,   244,    -1,    -1,   247,   248,   249,
      -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,
     260,   261,   262,   263,    -1,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,   275,   276,   277,   278,   279,
     280,   281,   282,   283,   284,    -1,   286,   287,   288,   289,
     290,   291,   292,   293,   294,   295,    -1,   297,   298,    -1,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
     310,    -1,   312,   313,   314,   315,   316,    -1,   318,   319,
     320,   321,    -1,   323,   324,    -1,   326,   327,   328,   329,
     330,   331,   332,   333,   334,   335,   336,    -1,   338,   339,
      -1,   341,   342,   343,   344,   345,   346,    -1,   348,   349,
      -1,    -1,   352,   353,   354,   355,    -1,   357,   358,   359,
     360,   361,   362,    -1,    -1,   365,   366,   367,   368,   369,
      -1,    -1,   372,   373,   374,   375,   376,   377,   378,    -1,
     380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,   403,   404,   405,   406,    -1,    -1,    -1,
     410,   411,   412,    -1,   414,   415,   416,   417,   418,   419,
       3,    -1,    -1,    -1,    -1,     8,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,    -1,    -1,    -1,   410,   411,   412,
      -1,   414,   415,   416,   417,   418,   419,     3,    -1,    -1,
      -1,    -1,     8,    -1,    -1,    -1,    -1,    -1,    14,    15,
      16,    17,    18,    19,    20,    21,    -1,    23,    24,    25,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,
      36,    37,    -1,    39,    40,    41,    42,    43,    -1,    45,
      46,    -1,    48,    49,    50,    51,    52,    -1,    -1,    55,
      56,    57,    58,    59,    -1,    61,    62,    63,    64,    65,
      -1,    67,    -1,    69,    70,    71,    72,    -1,    74,    75,
      -1,    77,    78,    79,    80,    81,    82,    -1,    -1,    85,
      86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    97,    98,    99,   100,   101,   102,    -1,   104,    -1,
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
      -1,   117,   118,   119,   120,   121,    -1,   123,   124,   125,
      -1,   127,   128,    -1,   130,   131,   132,   133,   134,   135,
     136,   137,   138,    -1,   140,    -1,   142,   143,   144,    -1,
     146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,
     156,   157,    -1,   159,    -1,   161,   162,   163,   164,   165,
      -1,   167,   168,   169,    -1,   171,   172,   173,   174,   175,
     176,    -1,   178,    -1,   180,   181,   182,   183,   184,   185,
     186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,
     196,   197,   198,   199,   200,   201,    -1,   203,    -1,   205,
      -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,   215,
     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
      -1,   227,   228,   229,   230,    -1,   232,   233,    -1,   235,
      -1,   237,   238,   239,   240,   241,   242,    -1,   244,    -1,
      -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,
     256,   257,   258,   259,   260,   261,   262,   263,    -1,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,   275,
     276,   277,   278,   279,   280,   281,   282,   283,   284,    -1,
     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
      -1,   297,   298,    -1,   300,   301,   302,   303,   304,   305,
     306,   307,   308,   309,   310,    -1,   312,   313,   314,   315,
     316,    -1,   318,   319,   320,   321,    -1,   323,   324,    -1,
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
     336,    -1,   338,   339,    -1,   341,   342,   343,   344,   345,
     346,    -1,   348,   349,    -1,    -1,   352,   353,   354,   355,
      -1,   357,   358,   359,   360,   361,   362,    -1,    -1,   365,
     366,   367,   368,   369,    -1,    -1,   372,   373,   374,   375,
     376,   377,   378,    -1,   380,    -1,   382,   383,   384,    -1,
      -1,   387,    -1,    -1,   390,   391,   392,   393,   394,   395,
     396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
     406,    -1,    -1,    -1,   410,   411,   412,    -1,   414,   415,
     416,   417,   418,   419,     3,    -1,    -1,    -1,    -1,     8,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,    -1,    -1,
      -1,   410,   411,   412,    -1,   414,   415,   416,   417,   418,
     419,     3,    -1,    -1,    -1,    -1,     8,    -1,    -1,    -1,
      -1,    -1,    14,    15,    16,    17,    18,    19,    20,    21,
      -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    33,    34,    -1,    36,    37,    -1,    39,    40,    41,
      42,    43,    -1,    45,    46,    -1,    48,    49,    50,    51,
      52,    -1,    -1,    55,    56,    57,    58,    59,    -1,    61,
      62,    63,    64,    65,    -1,    67,    -1,    69,    70,    71,
      72,    -1,    74,    75,    -1,    77,    78,    79,    80,    81,
      82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    97,    98,    99,   100,   101,
     102,    -1,   104,    -1,   106,   107,   108,   109,   110,    -1,
     112,   113,   114,    -1,    -1,   117,   118,   119,   120,   121,
      -1,   123,   124,   125,    -1,   127,   128,    -1,   130,   131,
     132,   133,   134,   135,   136,   137,   138,    -1,   140,    -1,
     142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,
     152,   153,   154,    -1,   156,   157,    -1,   159,    -1,   161,
     162,   163,   164,   165,    -1,   167,   168,   169,    -1,   171,
     172,   173,   174,   175,   176,    -1,   178,    -1,   180,   181,
     182,   183,   184,   185,   186,    -1,   188,    -1,   190,    -1,
      -1,   193,    -1,   195,   196,   197,   198,   199,   200,   201,
      -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,
      -1,   213,   214,   215,   216,   217,   218,   219,   220,   221,
     222,   223,   224,   225,    -1,   227,   228,   229,   230,    -1,
     232,   233,    -1,   235,    -1,   237,   238,   239,   240,   241,
     242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,
     252,    -1,    -1,    -1,   256,   257,   258,   259,   260,   261,
     262,   263,    -1,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,   275,   276,   277,   278,   279,   280,   281,
     282,   283,   284,    -1,   286,   287,   288,   289,   290,   291,
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,   310,    -1,
     312,   313,   314,   315,   316,    -1,   318,   319,   320,   321,
      -1,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
     332,   333,   334,   335,   336,    -1,   338,   339,    -1,   341,
     342,   343,   344,   345,   346,    -1,   348,   349,    -1,    -1,
     352,   353,   354,   355,    -1,   357,   358,   359,   360,   361,
     362,    -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,
     372,   373,   374,   375,   376,   377,   378,    -1,   380,    -1,
     382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,   403,   404,   405,   406,    -1,    -1,    -1,   410,   411,
     412,    -1,   414,   415,   416,   417,   418,   419,     3,    -1,
      -1,    -1,    -1,     8,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,    -1,    -1,     3,   410,   411,   412,    -1,   414,
     415,   416,   417,   418,   419,    14,    15,    16,    17,    18,
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   416,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   416,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   416,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    38,    39,    40,    41,    -1,    43,    44,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    -1,    -1,
      67,    -1,    69,    70,    71,    72,    73,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    84,    85,    86,
      -1,    -1,    -1,    90,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,    -1,   135,   136,
     137,    -1,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,   149,    -1,   151,   152,   153,   154,    -1,   156,
      -1,    -1,   159,    -1,   161,   162,   163,   164,   165,   166,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,   179,    -1,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,   200,   201,    -1,    -1,   204,   205,   206,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,    -1,    -1,   232,   233,   234,   235,    -1,
      -1,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,    -1,   253,   254,   255,    -1,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,    -1,
     267,    -1,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,   299,   300,   301,    -1,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,   322,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,    -1,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,    -1,   354,    -1,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
      -1,   378,    -1,   380,   381,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,    -1,    -1,
       3,    -1,    -1,    -1,    -1,    -1,    -1,   404,   405,   406,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,   416,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    38,    39,    40,    41,    -1,
      43,    44,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    -1,    -1,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    84,    85,    86,    -1,    -1,    -1,    90,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,    -1,   135,   136,   137,    -1,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,   149,    -1,   151,   152,
     153,   154,    -1,   156,    -1,    -1,   159,    -1,   161,   162,
     163,   164,   165,   166,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,   179,    -1,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
      -1,   204,   205,   206,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,    -1,    -1,   232,
     233,   234,   235,    -1,    -1,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,    -1,
     253,   254,   255,    -1,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,    -1,   267,    -1,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,   299,   300,   301,    -1,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,    -1,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
      -1,   354,    -1,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,    -1,   378,    -1,   380,   381,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,    -1,    -1,     3,     4,     5,    -1,    -1,    -1,
       9,   404,   405,   406,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,   416,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,   103,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
     139,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,   245,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,     4,
       5,    -1,    -1,    -1,     9,   414,   415,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
     245,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,     4,     5,    -1,    -1,    -1,     9,   414,
     415,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,   245,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,     9,   414,   415,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    22,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,   150,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    21,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       8,    -1,    -1,    11,    -1,    -1,    -1,   414,   415,    -1,
      -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      28,    -1,    -1,    -1,    67,    68,    -1,    -1,    36,    -1,
      -1,    -1,    -1,    76,    42,    -1,    -1,    80,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    97,    -1,    -1,    -1,    66,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   136,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   147,    -1,    -1,    -1,    -1,   152,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,   166,    -1,
      -1,    -1,   170,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   191,   192,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   206,    -1,
      -1,    -1,    -1,    -1,   247,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   231,    -1,    -1,   234,    -1,    -1,    -1,
      -1,    -1,   275,    -1,    -1,    -1,    -1,    -1,    -1,   247,
      -1,    -1,   250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   300,    -1,    -1,
      -1,   304,    -1,   306,    -1,    -1,    -1,    -1,    -1,   312,
      -1,    -1,   315,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   340,    -1,   342,
      -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   354,    -1,    -1,   322,    -1,   359,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     383,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   410,   411,   412,    -1,   414,   415,   416,   417,
     418,   419,     3,     4,     5,    -1,    -1,    -1,     9,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    22,
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
     383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    38,
      39,    40,    41,    42,    43,    44,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    84,    85,    86,    -1,    -1,
      -1,    90,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
     149,    -1,   151,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,   166,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
     179,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,   204,   205,   206,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,   230,    -1,   232,   233,   234,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,   322,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,   381,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
      85,    86,    -1,    -1,    -1,    90,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,   149,    -1,   151,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,   166,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,   179,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,   204,
     205,   206,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,    -1,   232,   233,   234,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,   381,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    38,    39,    40,
      41,    42,    43,    44,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    84,    85,    86,    -1,    -1,    -1,    90,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,   149,    -1,
     151,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,   166,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,   179,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,   204,   205,   206,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
      -1,   232,   233,   234,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,   322,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
     381,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    60,    61,    62,    63,    64,    65,    -1,
      67,    68,    69,    70,    71,    72,    -1,    74,    75,    76,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
     147,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,   364,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    60,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    76,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,   147,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,   206,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,   364,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    22,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,   155,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,   311,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    83,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
     155,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    60,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    76,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,   147,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,   364,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    22,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,   139,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,   245,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    22,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,   147,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,   340,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    83,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    26,    27,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
     381,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,     5,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,   103,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,   370,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    26,    27,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,   370,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    22,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,   370,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    22,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    22,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    22,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,   246,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    22,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    22,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    38,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,   340,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,   158,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    31,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    31,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,   103,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,   103,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
     103,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,   371,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    31,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,    -1,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    -1,    39,    40,    41,    42,    43,    -1,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      65,    -1,    67,    -1,    69,    70,    71,    72,    -1,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    -1,
      85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,   134,
     135,   136,   137,   138,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,    -1,    -1,    -1,   152,   153,   154,
      -1,   156,   157,    -1,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,    -1,    -1,   193,    -1,
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
     205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,   230,    -1,   232,   233,    -1,
     235,    -1,   237,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,    -1,    -1,
      -1,   256,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,    -1,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,   353,   354,
     355,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,   377,   378,    -1,   380,    -1,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    14,    15,    16,    17,    18,    19,    20,
      21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    33,    34,    -1,    36,    37,    -1,    39,    40,
      41,    42,    43,    -1,    45,    46,    -1,    48,    49,    50,
      51,    52,    -1,    -1,    55,    56,    57,    58,    59,    -1,
      61,    62,    63,    64,    65,    -1,    67,    -1,    69,    70,
      71,    72,    -1,    74,    75,    -1,    77,    78,    79,    80,
      81,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    97,    98,    99,   100,
     101,   102,    -1,   104,    -1,   106,   107,   108,   109,   110,
      -1,   112,   113,   114,    -1,    -1,   117,   118,   119,   120,
     121,    -1,   123,   124,   125,    -1,   127,   128,    -1,   130,
     131,   132,   133,   134,   135,   136,   137,   138,    -1,   140,
      -1,   142,   143,   144,    -1,   146,    -1,   148,    -1,    -1,
      -1,   152,   153,   154,    -1,   156,   157,    -1,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,   168,   169,    -1,
     171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
     181,   182,   183,   184,   185,   186,    -1,   188,    -1,   190,
      -1,    -1,   193,    -1,   195,   196,   197,   198,   199,   200,
     201,    -1,   203,    -1,   205,    -1,    -1,   208,   209,   210,
      -1,    -1,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,   230,
      -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
     241,   242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,
      -1,   252,    -1,    -1,    -1,   256,   257,   258,   259,   260,
     261,   262,   263,    -1,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,    -1,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
      -1,   312,   313,   314,   315,   316,    -1,   318,   319,   320,
     321,    -1,   323,   324,    -1,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,    -1,   338,   339,    -1,
     341,   342,   343,   344,   345,   346,    -1,   348,   349,    -1,
      -1,   352,   353,   354,   355,    -1,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,   368,   369,    -1,
      -1,   372,   373,   374,   375,   376,   377,   378,    -1,   380,
      -1,   382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,     3,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
      17,    18,    19,    20,    21,    -1,    23,    24,    25,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    36,
      37,    -1,    39,    40,    41,    42,    43,    -1,    45,    46,
      -1,    48,    49,    50,    51,    52,    -1,    -1,    55,    56,
      57,    58,    59,    -1,    61,    62,    63,    64,    65,    -1,
      67,    -1,    69,    70,    71,    72,    -1,    74,    75,    -1,
      77,    78,    79,    80,    81,    82,    -1,    -1,    85,    86,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      97,    98,    99,   100,   101,   102,    -1,   104,    -1,   106,
     107,   108,   109,   110,    -1,   112,   113,   114,    -1,    -1,
     117,   118,   119,   120,   121,    -1,   123,   124,   125,    -1,
     127,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
     137,   138,    -1,   140,    -1,   142,   143,   144,    -1,   146,
      -1,   148,    -1,    -1,    -1,   152,   153,   154,    -1,   156,
     157,    -1,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
      -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
      -1,   188,    -1,   190,    -1,    -1,   193,    -1,   195,   196,
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,    -1,
      -1,   208,   209,   210,    -1,    -1,   213,   214,   215,   216,
     217,   218,   219,   220,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,   230,    -1,   232,   233,    -1,   235,    -1,
     237,   238,   239,   240,   241,   242,    -1,   244,    -1,    -1,
     247,   248,   249,    -1,    -1,   252,    -1,    -1,    -1,   256,
     257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,   284,    -1,   286,
     287,   288,   289,   290,   291,   292,   293,   294,   295,    -1,
     297,   298,    -1,   300,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,    -1,   312,   313,   314,   315,   316,
      -1,   318,   319,   320,   321,    -1,   323,   324,    -1,   326,
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
      -1,   338,   339,    -1,   341,   342,   343,   344,   345,   346,
      -1,   348,   349,    -1,    -1,   352,   353,   354,   355,    -1,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,   368,   369,    -1,    -1,   372,   373,   374,   375,   376,
     377,   378,    -1,   380,    -1,   382,   383,   384,    -1,    -1,
     387,    -1,    -1,   390,   391,   392,   393,   394,   395,   396,
     397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    -1,    39,    40,    41,    42,
      43,    -1,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    65,    -1,    67,    -1,    69,    70,    71,    72,
      -1,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,   134,   135,   136,   137,   138,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,
     153,   154,    -1,   156,   157,    -1,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,    -1,    -1,
     193,    -1,   195,   196,   197,   198,   199,   200,   201,    -1,
     203,    -1,   205,    -1,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,   230,    -1,   232,
     233,    -1,   235,    -1,   237,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,   252,
      -1,    -1,    -1,   256,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,    -1,   300,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,   319,   320,   321,    -1,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,   336,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
     353,   354,   355,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,   377,   378,    -1,   380,    -1,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
     403,   404,   405,   406,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    38,    39,    40,    41,    -1,    43,    44,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      -1,    -1,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
      85,    86,    -1,    -1,    -1,    90,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,    -1,
     135,   136,   137,    -1,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,   149,    -1,   151,   152,   153,   154,
      -1,   156,    -1,    -1,   159,    -1,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,    -1,   178,   179,   180,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,    -1,    -1,   204,
     205,   206,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,    -1,    -1,   232,   233,   234,
     235,    -1,    -1,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,   252,   253,   254,
     255,    -1,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,    -1,   267,    -1,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,   299,   300,   301,    -1,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,    -1,   354,
      -1,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,    -1,   378,   379,   380,   381,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
      -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
     405,   406,    14,    15,    16,    17,    18,    19,    20,    21,
      -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
      -1,    43,    44,    45,    46,    -1,    48,    49,    50,    51,
      52,    -1,    -1,    55,    56,    57,    58,    59,    -1,    61,
      62,    63,    64,    -1,    -1,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    79,    80,    81,
      82,    -1,    84,    85,    86,    -1,    -1,    -1,    90,    -1,
      -1,    -1,    94,    95,    96,    97,    98,    99,   100,   101,
     102,    -1,   104,    -1,   106,   107,   108,   109,   110,    -1,
     112,   113,   114,    -1,    -1,   117,   118,   119,   120,   121,
      -1,   123,   124,   125,    -1,   127,   128,    -1,   130,   131,
     132,   133,    -1,   135,   136,   137,    -1,    -1,   140,    -1,
     142,   143,   144,    -1,   146,    -1,   148,   149,    -1,   151,
     152,   153,   154,    -1,   156,    -1,    -1,   159,    -1,   161,
     162,   163,   164,   165,   166,   167,   168,   169,    -1,   171,
     172,   173,   174,   175,   176,    -1,   178,   179,    -1,   181,
     182,   183,   184,   185,   186,    -1,   188,    -1,   190,   191,
     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
      -1,    -1,   204,   205,   206,    -1,   208,   209,   210,    -1,
      -1,   213,   214,   215,   216,   217,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,   229,    -1,    -1,
     232,   233,   234,   235,   236,    -1,   238,   239,   240,   241,
     242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,
      -1,   253,   254,   255,    -1,   257,   258,   259,   260,   261,
     262,   263,    -1,   265,    -1,   267,    -1,   269,   270,   271,
      -1,   273,   274,   275,   276,   277,   278,   279,   280,   281,
     282,   283,   284,    -1,   286,   287,   288,   289,   290,   291,
     292,   293,   294,   295,    -1,   297,   298,   299,   300,   301,
      -1,   303,   304,   305,   306,   307,   308,   309,   310,    -1,
     312,   313,   314,   315,   316,    -1,   318,   319,   320,   321,
     322,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
     332,   333,   334,   335,    -1,    -1,   338,   339,   340,   341,
     342,   343,   344,   345,   346,    -1,   348,   349,    -1,    -1,
     352,    -1,   354,    -1,    -1,   357,   358,   359,   360,   361,
     362,    -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,
     372,   373,   374,   375,   376,    -1,   378,    -1,   380,   381,
     382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,
     392,   393,   394,    -1,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   404,   405,   406,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    -1,
      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    65,    -1,    67,    -1,
      69,    70,    71,    72,    -1,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    -1,    85,    86,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
      -1,    -1,    -1,   152,   153,   154,    -1,   156,   157,    -1,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
      -1,   180,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,    -1,    -1,   193,    -1,   195,   196,   197,   198,
     199,   200,   201,    -1,   203,    -1,   205,    -1,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,   230,    -1,   232,   233,    -1,   235,    -1,   237,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,   252,    -1,    -1,    -1,   256,   257,   258,
     259,   260,    -1,   262,   263,    -1,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,    -1,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
      -1,   300,   301,   302,    -1,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,    -1,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,   353,   354,   355,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,   377,   378,
      -1,   380,    -1,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,   403,   404,   405,   406,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
      15,    16,    17,    18,    19,    20,    21,    -1,    23,    24,
      25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
      -1,    36,    37,    38,    39,    40,    41,    -1,    43,    44,
      45,    46,    -1,    48,    49,    50,    51,    52,    -1,    -1,
      55,    56,    57,    58,    59,    -1,    61,    62,    63,    64,
      -1,    -1,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
      85,    86,    -1,    -1,    -1,    90,    -1,    -1,    -1,    94,
      95,    96,    97,    98,    99,   100,   101,   102,    -1,   104,
      -1,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
      -1,    -1,   117,   118,   119,   120,   121,    -1,   123,   124,
     125,    -1,   127,   128,    -1,   130,   131,   132,   133,    -1,
     135,   136,   137,    -1,    -1,   140,    -1,   142,   143,   144,
      -1,   146,    -1,   148,   149,    -1,   151,   152,   153,   154,
      -1,   156,    -1,    -1,   159,    -1,   161,   162,   163,   164,
     165,   166,   167,   168,   169,    -1,   171,   172,   173,   174,
     175,   176,    -1,   178,   179,    -1,   181,   182,   183,   184,
     185,   186,    -1,   188,    -1,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,    -1,    -1,   204,
     205,   206,    -1,   208,   209,   210,    -1,    -1,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,    -1,   232,   233,   234,
     235,    -1,    -1,   238,   239,   240,   241,   242,    -1,   244,
      -1,    -1,   247,   248,   249,    -1,    -1,    -1,   253,   254,
     255,    -1,   257,   258,   259,   260,   261,   262,   263,    -1,
     265,    -1,   267,    -1,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      -1,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,    -1,   297,   298,   299,   300,   301,    -1,   303,   304,
     305,   306,   307,   308,   309,   310,    -1,   312,   313,   314,
     315,   316,    -1,   318,   319,   320,   321,   322,   323,   324,
      -1,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,    -1,   338,   339,    -1,   341,   342,   343,   344,
     345,   346,    -1,   348,   349,    -1,    -1,   352,    -1,   354,
      -1,    -1,   357,   358,   359,   360,   361,   362,    -1,    -1,
     365,   366,   367,   368,   369,    -1,    -1,   372,   373,   374,
     375,   376,    -1,   378,    -1,   380,   381,   382,   383,   384,
      -1,    -1,   387,    -1,    -1,   390,   391,   392,   393,   394,
      -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
     405,   406,    14,    15,    16,    17,    18,    19,    20,    21,
      -1,    23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
      -1,    43,    44,    45,    46,    -1,    48,    49,    50,    51,
      52,    -1,    -1,    55,    56,    57,    58,    59,    -1,    61,
      62,    63,    64,    -1,    -1,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    79,    80,    81,
      82,    -1,    84,    85,    86,    -1,    -1,    -1,    90,    -1,
      -1,    -1,    94,    95,    96,    97,    98,    99,   100,   101,
     102,    -1,   104,    -1,   106,   107,   108,   109,   110,    -1,
     112,   113,   114,    -1,    -1,   117,   118,   119,   120,   121,
      -1,   123,   124,   125,    -1,   127,   128,    -1,   130,   131,
     132,   133,    -1,   135,   136,   137,    -1,    -1,   140,    -1,
     142,   143,   144,    -1,   146,    -1,   148,   149,    -1,   151,
     152,   153,   154,    -1,   156,    -1,    -1,   159,    -1,   161,
     162,   163,   164,   165,   166,   167,   168,   169,    -1,   171,
     172,   173,   174,   175,   176,    -1,   178,   179,    -1,   181,
     182,   183,   184,   185,   186,    -1,   188,    -1,   190,   191,
     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
      -1,    -1,   204,   205,   206,    -1,   208,   209,   210,    -1,
      -1,   213,   214,   215,   216,   217,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,   229,   230,    -1,
     232,   233,   234,   235,    -1,    -1,   238,   239,   240,   241,
     242,    -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,
      -1,   253,   254,   255,    -1,   257,   258,   259,   260,   261,
     262,   263,    -1,   265,    -1,   267,    -1,   269,   270,   271,
      -1,   273,   274,   275,   276,   277,   278,   279,   280,   281,
     282,   283,   284,    -1,   286,   287,   288,   289,   290,   291,
     292,   293,   294,   295,    -1,   297,   298,   299,   300,   301,
      -1,   303,   304,   305,   306,   307,   308,   309,   310,    -1,
     312,   313,   314,   315,   316,    -1,   318,   319,   320,   321,
     322,   323,   324,    -1,   326,   327,   328,   329,   330,   331,
     332,   333,   334,   335,    -1,    -1,   338,   339,    -1,   341,
     342,   343,   344,   345,   346,    -1,   348,   349,    -1,    -1,
     352,    -1,   354,    -1,    -1,   357,   358,   359,   360,   361,
     362,    -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,
     372,   373,   374,   375,   376,    -1,   378,    -1,   380,   381,
     382,   383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,
     392,   393,   394,    -1,     3,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   404,   405,   406,    14,    15,    16,    17,    18,
      19,    20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    33,    34,    -1,    36,    37,    38,
      39,    40,    41,    -1,    43,    44,    45,    46,    -1,    48,
      49,    50,    51,    52,    -1,    -1,    55,    56,    57,    58,
      59,    -1,    61,    62,    63,    64,    -1,    -1,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      79,    80,    81,    82,    -1,    84,    85,    86,    -1,    -1,
      -1,    90,    -1,    -1,    -1,    94,    95,    96,    97,    98,
      99,   100,   101,   102,    -1,   104,    -1,   106,   107,   108,
     109,   110,    -1,   112,   113,   114,    -1,    -1,   117,   118,
     119,   120,   121,    -1,   123,   124,   125,    -1,   127,   128,
      -1,   130,   131,   132,   133,    -1,   135,   136,   137,    -1,
      -1,   140,    -1,   142,   143,   144,    -1,   146,    -1,   148,
     149,    -1,   151,   152,   153,   154,    -1,   156,    -1,    -1,
     159,    -1,   161,   162,   163,   164,   165,   166,   167,   168,
     169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
     179,    -1,   181,   182,   183,   184,   185,   186,    -1,   188,
      -1,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,   200,   201,    -1,    -1,   204,   205,   206,    -1,   208,
     209,   210,    -1,    -1,   213,   214,   215,   216,   217,   218,
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
     229,    -1,    -1,   232,   233,   234,   235,    -1,    -1,   238,
     239,   240,   241,   242,    -1,   244,    -1,    -1,   247,   248,
     249,    -1,    -1,    -1,   253,   254,   255,    -1,   257,   258,
     259,   260,   261,   262,   263,    -1,   265,    -1,   267,    -1,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,    -1,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,    -1,   297,   298,
     299,   300,   301,    -1,   303,   304,   305,   306,   307,   308,
     309,   310,    -1,   312,   313,   314,   315,   316,    -1,   318,
     319,   320,   321,   322,   323,   324,    -1,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,    -1,    -1,   338,
     339,    -1,   341,   342,   343,   344,   345,   346,    -1,   348,
     349,    -1,    -1,   352,    -1,   354,    -1,    -1,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,   368,
     369,    -1,    -1,   372,   373,   374,   375,   376,    -1,   378,
      -1,   380,   381,   382,   383,   384,    -1,    -1,   387,    -1,
      -1,   390,   391,   392,   393,   394,    -1,     3,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   404,   405,   406,    14,    15,
      16,    17,    18,    19,    20,    21,    -1,    23,    24,    25,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,
      36,    37,    38,    39,    40,    41,    -1,    43,    44,    45,
      46,    -1,    48,    49,    50,    51,    52,    -1,    -1,    55,
      56,    57,    58,    59,    -1,    61,    62,    63,    64,    -1,
      -1,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    79,    80,    81,    82,    -1,    84,    85,
      86,    -1,    -1,    -1,    90,    -1,    -1,    -1,    94,    95,
      96,    97,    98,    99,   100,   101,   102,    -1,   104,    -1,
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
      -1,   117,   118,   119,   120,   121,    -1,   123,   124,   125,
      -1,   127,   128,    -1,   130,   131,   132,   133,    -1,   135,
     136,   137,    -1,    -1,   140,    -1,   142,   143,   144,    -1,
     146,    -1,   148,   149,    -1,   151,   152,   153,   154,    -1,
     156,    -1,    -1,   159,    -1,   161,   162,   163,   164,   165,
     166,   167,   168,   169,    -1,   171,   172,   173,   174,   175,
     176,    -1,   178,   179,    -1,   181,   182,   183,   184,   185,
     186,    -1,   188,    -1,   190,   191,   192,   193,   194,   195,
     196,   197,   198,   199,   200,   201,    -1,    -1,   204,   205,
     206,    -1,   208,   209,   210,    -1,    -1,   213,   214,   215,
     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
     226,   227,   228,   229,    -1,    -1,   232,   233,   234,   235,
      -1,    -1,   238,   239,   240,   241,   242,    -1,   244,    -1,
      -1,   247,   248,   249,    -1,    -1,    -1,   253,   254,   255,
      -1,   257,   258,   259,   260,   261,   262,   263,    -1,   265,
      -1,   267,    -1,   269,   270,   271,    -1,   273,   274,   275,
     276,   277,   278,   279,   280,   281,   282,   283,   284,    -1,
     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
      -1,   297,   298,   299,   300,   301,    -1,   303,   304,   305,
     306,   307,   308,   309,   310,    -1,   312,   313,   314,   315,
     316,    -1,   318,   319,   320,   321,   322,   323,   324,    -1,
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
      -1,    -1,   338,   339,    -1,   341,   342,   343,   344,   345,
     346,    -1,   348,   349,    -1,    -1,   352,    -1,   354,    -1,
      -1,   357,   358,   359,   360,   361,   362,    -1,    -1,   365,
     366,   367,   368,   369,    -1,    -1,   372,   373,   374,   375,
     376,    -1,   378,    -1,   380,   381,   382,   383,   384,    -1,
      -1,   387,    -1,    -1,   390,   391,   392,   393,   394,    -1,
       3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,   405,
     406,    14,    15,    16,    17,    18,    19,    20,    21,    -1,
      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      33,    34,    -1,    36,    37,    38,    39,    40,    41,    -1,
      43,    44,    45,    46,    -1,    48,    49,    50,    51,    52,
      -1,    -1,    55,    56,    57,    58,    59,    -1,    61,    62,
      63,    64,    -1,    -1,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    79,    80,    81,    82,
      -1,    84,    85,    86,    -1,    -1,    -1,    90,    -1,    -1,
      -1,    94,    95,    96,    97,    98,    99,   100,   101,   102,
      -1,   104,    -1,   106,   107,   108,   109,   110,    -1,   112,
     113,   114,    -1,    -1,   117,   118,   119,   120,   121,    -1,
     123,   124,   125,    -1,   127,   128,    -1,   130,   131,   132,
     133,    -1,   135,   136,   137,    -1,    -1,   140,    -1,   142,
     143,   144,    -1,   146,    -1,   148,   149,    -1,   151,   152,
     153,   154,    -1,   156,    -1,    -1,   159,    -1,   161,   162,
     163,   164,   165,   166,   167,   168,   169,    -1,   171,   172,
     173,   174,   175,   176,    -1,   178,   179,    -1,   181,   182,
     183,   184,   185,   186,    -1,   188,    -1,   190,   191,   192,
     193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
      -1,   204,   205,   206,    -1,   208,   209,   210,    -1,    -1,
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     223,   224,   225,   226,   227,   228,   229,    -1,    -1,   232,
     233,   234,   235,    -1,    -1,   238,   239,   240,   241,   242,
      -1,   244,    -1,    -1,   247,   248,   249,    -1,    -1,    -1,
     253,   254,   255,    -1,   257,   258,   259,   260,   261,   262,
     263,    -1,   265,    -1,   267,    -1,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,    -1,   286,   287,   288,   289,   290,   291,   292,
     293,   294,   295,    -1,   297,   298,   299,   300,   301,    -1,
     303,   304,   305,   306,   307,   308,   309,   310,    -1,   312,
     313,   314,   315,   316,    -1,   318,    -1,   320,   321,   322,
     323,   324,    -1,   326,   327,   328,   329,   330,   331,   332,
     333,   334,   335,    -1,    -1,   338,   339,    -1,   341,   342,
     343,   344,   345,   346,    -1,   348,   349,    -1,    -1,   352,
      -1,   354,    -1,    -1,   357,   358,   359,   360,   361,   362,
      -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,   372,
     373,   374,   375,   376,    -1,   378,    -1,   380,   381,   382,
     383,   384,    -1,    -1,   387,    -1,    -1,   390,   391,   392,
     393,   394,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   404,   405,   406,    14,    15,    16,    17,    18,    19,
      20,    21,    -1,    23,    24,    25,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    33,    34,    -1,    36,    37,    38,    39,
      40,    41,    -1,    -1,    44,    -1,    -1,    -1,    48,    49,
      50,    51,    52,    -1,    -1,    55,    56,    -1,    -1,    59,
      -1,    61,    62,    63,    64,    -1,    -1,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    79,
      80,    81,    82,    -1,    84,    85,    86,    -1,    -1,    -1,
      90,    -1,    -1,    -1,    94,    95,    96,    97,    98,    99,
      -1,    -1,   102,    -1,   104,    -1,   106,   107,   108,   109,
     110,    -1,   112,   113,   114,    -1,    -1,   117,   118,   119,
     120,   121,    -1,   123,   124,   125,    -1,   127,   128,    -1,
     130,   131,   132,   133,    -1,   135,   136,   137,    -1,    -1,
     140,    -1,   142,    -1,   144,    -1,   146,    -1,   148,   149,
      -1,   151,   152,   153,   154,    -1,   156,    -1,    -1,   159,
      -1,   161,   162,   163,   164,   165,   166,   167,   168,   169,
      -1,   171,   172,   173,   174,   175,   176,    -1,   178,   179,
      -1,   181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
     200,   201,    -1,    -1,   204,   205,   206,    -1,   208,   209,
     210,    -1,    -1,   213,   214,   215,   216,   217,   218,   219,
     220,   221,   222,   223,   224,    -1,   226,    -1,   228,   229,
      -1,    -1,   232,   233,   234,   235,    -1,    -1,   238,    -1,
     240,   241,   242,    -1,   244,    -1,    -1,   247,   248,   249,
      -1,    -1,    -1,   253,   254,   255,    -1,   257,   258,   259,
     260,   261,   262,   263,    -1,   265,    -1,   267,    -1,   269,
     270,   271,    -1,   273,   274,   275,   276,   277,   278,   279,
      -1,   281,   282,   283,   284,    -1,   286,   287,   288,   289,
     290,   291,   292,   293,   294,   295,    -1,   297,   298,   299,
     300,   301,    -1,   303,   304,   305,   306,   307,   308,   309,
     310,    -1,   312,   313,   314,   315,   316,    -1,   318,    -1,
     320,   321,   322,   323,    -1,    -1,   326,   327,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,    -1,   338,   339,
      -1,   341,   342,   343,   344,   345,   346,    -1,    -1,    -1,
      -1,    -1,   352,    -1,   354,    -1,    -1,   357,   358,   359,
     360,   361,   362,    -1,    -1,   365,   366,   367,   368,   369,
      -1,    -1,   372,   373,   374,   375,   376,    -1,    -1,    -1,
     380,   381,   382,   383,   384,    -1,    -1,   387,    -1,    -1,
     390,   391,   392,   393,   394,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   404,   405,   406
};

/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   symbol of state STATE-NUM.  */
static const yytype_uint16 yystos[] =
{
       0,    14,    24,    26,    27,    41,    61,    63,    64,    69,
      71,    81,    83,    99,   102,   114,   116,   120,   126,   133,
     135,   141,   155,   208,   209,   214,   222,   233,   270,   281,
     286,   288,   293,   298,   301,   305,   310,   311,   318,   321,
     328,   340,   357,   366,   372,   377,   389,   423,   430,   431,
     432,   433,   439,   440,   442,   443,   444,   445,   446,   447,
     448,   450,   451,   455,   465,   467,   468,   471,   472,   473,
     484,   487,   488,   503,   539,   545,   546,   553,   559,   561,
     563,   564,   567,   570,   571,   575,   576,   585,   589,   590,
     591,   595,   596,   598,   599,   600,   613,   614,   615,   616,
     627,   628,   635,   636,   639,   640,   641,   642,   643,   648,
     650,   653,   657,   661,   662,   672,   673,   676,   681,   692,
     711,   714,   715,   716,   719,   722,   724,   726,   729,   732,
     733,   734,   741,   742,   744,   745,   746,   751,   753,   754,
     758,   759,   762,   763,   764,   766,   767,   768,   769,   771,
     774,   775,   780,   786,   789,   791,   792,   797,   799,   803,
     810,   814,   815,   816,   817,   818,   819,   822,   849,   352,
     391,   747,    21,    67,    80,    97,   103,   118,   136,   147,
     152,   158,   173,   198,   247,   275,   300,   306,   312,   315,
     340,   342,   346,   354,   359,   370,   383,   560,   747,     3,
      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
      24,    25,    33,    34,    36,    37,    39,    40,    41,    42,
      43,    45,    46,    48,    49,    50,    51,    52,    55,    56,
      57,    58,    59,    61,    62,    63,    64,    65,    67,    69,
      70,    71,    72,    74,    75,    77,    78,    79,    80,    81,
      82,    85,    86,    94,    95,    96,    97,    98,    99,   100,
     101,   102,   104,   106,   107,   108,   109,   110,   112,   113,
     114,   117,   118,   119,   120,   121,   123,   124,   125,   127,
     128,   130,   131,   132,   133,   134,   135,   136,   137,   138,
     140,   142,   143,   144,   146,   148,   152,   153,   154,   156,
     157,   159,   161,   162,   163,   164,   165,   167,   168,   169,
     171,   172,   173,   174,   175,   176,   178,   180,   181,   182,
     183,   184,   185,   186,   188,   190,   193,   195,   196,   197,
     198,   199,   200,   201,   203,   205,   208,   209,   210,   213,
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
     224,   225,   227,   228,   229,   230,   232,   233,   235,   237,
     238,   239,   240,   241,   242,   244,   247,   248,   249,   252,
     256,   257,   258,   259,   260,   261,   262,   263,   265,   266,
     267,   268,   269,   270,   271,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,   284,   286,   287,   288,
     289,   290,   291,   292,   293,   294,   295,   297,   298,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     312,   313,   314,   315,   316,   318,   319,   320,   321,   323,
     324,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   338,   339,   341,   342,   343,   344,   345,   346,
     348,   349,   352,   353,   354,   355,   357,   358,   359,   360,
     361,   362,   365,   366,   367,   368,   369,   372,   373,   374,
     375,   376,   377,   378,   380,   382,   383,   384,   387,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,   811,   954,   966,   969,
     970,   381,   776,   245,   271,   747,    44,   494,   815,    21,
      33,    54,    67,    76,    97,   103,   118,   136,   147,   154,
     158,   210,   247,   250,   300,   306,   315,   342,   343,   345,
     346,   354,   359,   364,   367,   370,   504,   631,   682,   693,
      22,   270,   954,   811,    22,   265,   343,   345,     5,   197,
     720,   721,   963,    21,    33,    54,    67,    80,    97,   118,
     136,   147,   152,   158,   173,   247,   257,   300,   304,   306,
     312,   315,   340,   342,   346,   354,   359,   370,   383,   560,
     644,   747,   954,    83,   381,   423,   539,   775,   781,   789,
     792,   797,   803,   810,   814,     9,    15,    22,    39,   142,
     148,   150,   170,   199,   228,   273,   287,   414,   415,   658,
     659,   811,   962,   965,    22,    83,   285,   311,   663,   664,
     665,   966,   966,   959,   963,   340,   825,   658,   966,   352,
     954,   257,    97,   173,   339,   340,   727,   305,   966,    22,
     316,   348,   352,   457,   966,    19,   155,   663,   664,   271,
     747,   966,   196,    22,   115,   827,    55,    77,   210,   224,
     300,   306,   316,   348,   352,   394,   456,   457,    22,   316,
     348,   352,   457,   352,   246,   858,   952,   966,   825,   416,
     966,   151,   423,   777,   423,   948,   283,   820,   821,   954,
     815,   816,   819,     0,   426,   776,   129,   187,   251,   363,
     828,   829,   815,   817,   818,   108,   183,   369,   427,     3,
      38,    44,    73,    84,    90,   149,   151,   166,   179,   191,
     192,   194,   204,   206,   226,   234,   253,   254,   255,   299,
     322,   381,   960,   966,   967,   969,   971,   646,   966,   646,
     955,   966,   274,   646,   646,   954,   966,    96,   340,   671,
     960,   964,   966,   952,   240,     8,    62,   140,   410,   411,
     412,   414,   415,   416,   417,   418,   419,   718,   915,   916,
     966,   964,   954,   952,   954,   858,   954,   308,   954,   646,
     215,   964,   952,   197,   105,   193,   231,   279,   748,   749,
     750,   952,   958,   966,    21,    54,    67,    68,    76,    80,
      97,   118,   136,   147,   152,   173,   198,   247,   300,   304,
     306,   312,   315,   340,   342,   346,   354,   359,   383,   560,
     651,   963,   952,   350,   960,   954,   423,   646,   354,   955,
     646,   165,   954,    96,   340,   343,   345,   964,   343,   345,
      62,   140,   718,   291,   964,   452,   966,   954,   954,   308,
     954,   646,   215,   964,   312,   340,   383,    80,   173,   152,
     304,   358,   554,    22,   954,   812,   464,   963,   966,   721,
     165,   960,   954,   165,   725,   165,   955,    96,   340,   165,
     960,   165,   953,   954,    62,   140,   165,   718,    48,   165,
     953,   165,   954,   165,   954,   165,   954,   308,   165,   954,
     165,   215,   953,   197,   165,   645,   646,   423,   790,   504,
     781,   377,   381,   775,   782,   783,   784,   966,   776,   965,
     659,   660,    22,   660,   965,   660,    22,   660,   965,   660,
     660,   660,   965,   962,   962,   811,   660,   274,   423,   423,
     522,   522,   522,   245,   350,   427,   522,   858,   859,   427,
     743,   963,   423,   787,    48,   954,   954,   952,   966,    38,
     406,   193,   425,   248,   248,   245,   150,   963,   350,   145,
     654,   245,     4,     6,     7,     8,    10,    30,    43,    45,
      46,    53,    54,    57,    58,    65,    87,    88,    89,    90,
      91,    92,    93,   100,   101,   119,   134,   138,   139,   143,
     157,   185,   186,   188,   203,   211,   212,   225,   227,   231,
     236,   237,   239,   247,   256,   266,   280,   302,   317,   324,
     336,   348,   349,   353,   355,   356,   364,   370,   378,   396,
     397,   398,   399,   400,   401,   402,   403,   414,   415,   416,
     423,   815,   870,   873,   876,   877,   878,   880,   881,   882,
     883,   886,   887,   891,   893,   894,   913,   917,   936,   941,
     949,   950,   960,   961,   962,   963,   966,   963,    22,   469,
     951,   952,   316,   456,   103,   463,   963,   464,   963,    38,
      59,   456,   406,   749,   248,   150,   350,   410,    38,   406,
     193,   750,   423,   952,   416,   421,   425,   942,   943,   859,
     149,   151,   381,   772,   773,   775,   149,   778,   103,   891,
     946,   947,   820,   427,   423,   779,   424,   424,   432,   952,
      22,   115,   826,   826,    48,   826,   141,   145,   207,   243,
     832,   834,   835,   844,   846,   847,   828,   829,   150,   189,
     858,   860,   948,   423,   621,   943,   258,   289,   318,   425,
     647,   258,   289,   318,   258,   289,   318,   389,   434,   465,
     466,   677,    18,   120,   258,   318,   476,   318,    18,   120,
     369,   449,   392,   858,    50,    82,   137,   168,   258,   289,
     297,   303,   310,   318,   326,   334,   384,   466,   705,   712,
     423,   694,   289,   449,    18,    24,    64,   113,   120,   123,
     175,   229,   231,   241,   249,   258,   289,   293,   318,   374,
     474,   475,   579,     4,   415,   551,   965,   646,   646,   423,
     717,   425,   170,   289,   434,   441,   258,   289,    49,    95,
     172,   217,   219,   229,   257,   289,   294,   318,   328,   474,
     548,   549,   258,   382,   579,   587,   289,   318,   474,   258,
     289,   293,   318,    74,   112,   259,   344,   245,    18,    24,
     120,   258,   289,   318,   485,   486,   145,   289,   318,   434,
     466,   289,   318,   474,   954,   205,   105,   246,   393,   427,
     748,   371,   770,   245,   960,   423,   954,    96,   340,   960,
     240,    62,   140,   718,   954,   308,   954,   197,   646,   522,
     331,   332,   490,   963,   423,   621,   622,    60,     3,    43,
      45,    46,    57,    58,   100,   101,   143,   185,   186,   188,
     225,   227,   239,   280,   319,   324,   348,   349,   378,   867,
     869,   871,   873,   875,   877,   878,   879,   881,   882,   886,
     887,   967,   969,   150,   423,   617,   954,   434,    31,   765,
     231,   434,   392,   165,   952,   434,   646,   646,   617,   504,
     434,    38,   453,   359,   586,   258,   562,    74,   112,   259,
     344,    20,    40,   184,   601,    31,   617,   145,   434,   952,
     165,   540,   952,   952,   646,    73,   683,   960,   954,   560,
      44,    94,   182,   229,   307,   134,   621,    51,   295,   477,
     134,   423,   134,   392,   134,   694,   134,   427,   165,   646,
     165,   646,   134,   717,   953,   134,   134,   245,   134,   477,
     134,    74,   112,   259,   344,   134,   245,   134,   145,   165,
     165,   464,   134,   427,   477,   891,   920,   340,   424,   427,
     139,   245,   356,   461,   464,   551,   785,   781,   660,   811,
     660,   811,   660,   811,   660,   811,   660,   811,   811,   811,
     660,   811,   423,   523,   524,   966,   523,    22,    97,   147,
     152,   197,   198,   306,   312,   340,   342,   666,   951,   953,
     665,   170,   427,   800,   963,   867,   923,    31,   953,   146,
     728,   728,   728,   205,   966,   145,   145,   666,   953,   305,
     966,   464,   245,   423,   944,   421,   815,   924,   380,   884,
     891,   940,   423,   884,   884,   423,   423,   423,   423,   872,
     872,   268,   815,   423,   423,   874,   423,   423,   423,   423,
      57,    58,   884,   891,   423,   872,   423,   423,   423,   423,
     423,   390,   409,   423,   888,   423,   888,   423,   423,   815,
     423,   423,   423,   423,   423,   423,   423,   423,   891,   891,
     815,   891,   920,   963,    58,   423,   885,   423,   963,     3,
       8,    11,    28,    31,    36,    42,    66,   166,   170,   191,
     192,   206,   231,   234,   247,   250,   322,   410,   411,   412,
     414,   415,   416,   417,   418,   419,   915,   917,   919,   255,
     891,   189,   427,   823,   423,   963,   943,   106,   167,   470,
     427,    59,   103,   464,    31,     3,   103,   210,   462,   551,
     887,   963,    78,   117,   900,    86,   103,   458,   459,   461,
     551,   103,   458,   205,   952,   891,     3,    22,    26,    27,
      28,    29,    30,    31,    32,    35,    47,    53,    54,    60,
      66,    68,    76,    83,    87,    88,    89,    91,    92,    93,
     103,   105,   111,   115,   116,   122,   126,   129,   139,   141,
     145,   147,   150,   155,   158,   160,   170,   177,   187,   189,
     202,   207,   211,   212,   231,   236,   243,   245,   246,   250,
     251,   264,   272,   285,   296,   311,   317,   325,   337,   340,
     347,   350,   351,   356,   363,   364,   370,   371,   379,   385,
     386,   388,   389,   416,   957,   968,   969,   970,   971,   972,
     942,    79,   294,   649,   424,   427,   776,   424,   427,   821,
     953,    31,   779,   817,   817,   830,   831,   891,   817,   142,
     228,   841,   279,   320,   369,    22,   836,   891,   837,   839,
     891,   893,   844,   845,   835,   834,   832,   833,   145,   847,
     832,   844,   860,   952,    31,   966,   318,   416,   923,   258,
     289,   318,   350,   350,   306,   957,   425,   350,   350,   306,
     350,   350,   342,   456,   760,   145,   155,   170,   298,   678,
     679,    60,    76,   130,   147,   272,   364,   520,   521,    76,
     103,   231,   350,   103,   231,   306,   306,   568,    21,    54,
      67,    80,   118,   147,   152,   247,   306,   312,   315,   340,
     346,   359,   383,   560,   954,   289,   318,   474,   245,   551,
     310,   350,   350,   236,   551,   107,   190,   306,   295,   705,
     713,   170,   180,   252,   319,   379,   424,   695,   698,   699,
     700,   702,   867,   967,   350,   370,    68,   130,   511,   520,
     966,    68,   730,   245,   304,   354,    76,   730,    25,   292,
     304,   354,   952,   175,   241,   646,   423,   350,   350,   423,
     480,   342,   389,   390,   480,    76,   427,     4,   258,   371,
     371,   230,   867,   258,   318,   718,    97,   350,   436,   466,
     350,   350,   551,    48,   550,   551,   551,    95,   217,   219,
      48,   350,   434,   306,   434,   229,   549,   350,   236,   963,
     579,   350,   730,   306,   350,   350,   480,   480,   646,   646,
     646,   646,   952,    37,   376,    37,    37,   350,    37,   350,
     306,   427,    93,   370,   597,   964,   350,   436,   350,   306,
     258,   289,   279,   290,   314,   460,   748,   958,   966,   952,
     621,   867,   245,   392,   694,   551,   646,   646,   717,   191,
     245,    74,   112,   259,   344,   245,   646,   191,   389,   495,
     434,     3,   623,   624,   617,   423,   869,    31,    30,   868,
      98,   163,   218,   221,   309,   404,   423,   889,   890,   647,
     872,   646,   618,   619,   968,    20,   755,   867,   134,   565,
     954,   231,   423,   592,   435,   631,   371,   383,   435,   964,
      83,   155,   454,   503,   545,   600,   661,   681,   751,   963,
     587,   588,   954,   213,   646,   646,   646,   646,   241,   108,
     183,   357,   369,   602,   603,   127,   423,   597,   435,   547,
     548,   231,    31,   241,   423,   541,   522,   145,   684,   958,
     423,   696,    31,   197,   389,   390,   813,   307,   960,   477,
     867,   955,   165,   954,   960,   477,   953,   954,   134,   371,
     134,   371,   718,   477,   477,   953,   954,   952,   954,   954,
     954,   952,   953,   597,   134,   134,   477,   645,   646,   424,
     427,   952,   781,   783,   811,   811,   811,   811,   811,   811,
     523,   424,   427,   424,   153,   313,   341,   953,    96,   315,
     670,   671,   953,   240,   953,   951,   951,   953,   350,   389,
     674,    16,   132,   302,   320,   801,   858,   235,   802,   424,
     427,   788,   792,   797,   803,   814,   350,   664,   663,   664,
     150,   156,   675,   966,    21,    68,   118,   147,   152,   198,
     306,   312,   340,   359,   383,   560,   655,   920,   942,   422,
     920,   924,   925,   423,   385,   937,   938,   891,   920,   962,
     962,   920,     3,    98,   163,   218,   221,   309,   404,   926,
     927,   963,   962,   920,   920,   962,   962,   884,   884,   891,
     718,   891,   928,   414,   415,   892,   893,   913,   917,   930,
     424,   920,   891,   920,   931,   348,   406,   962,   962,   891,
      47,   150,   202,   351,   891,   920,   934,   920,   223,   893,
     891,   898,   899,   900,   223,   891,   900,   424,   427,   318,
     962,   962,   889,   867,   891,   968,   348,    35,   337,   945,
     646,   891,   423,   815,   935,   115,   117,   139,   231,   236,
     241,   356,   365,   891,    42,   166,   170,   206,   322,   423,
     891,   350,   891,   891,   891,   891,   891,   891,   891,   891,
     891,   891,    22,    29,   325,   914,   302,   423,   913,   154,
     210,   340,   343,   345,   367,   824,   952,   950,   150,   850,
      22,   115,   379,   416,   424,   700,   891,   921,   922,   967,
     952,   352,   423,   963,   427,   424,   422,   428,   164,   164,
     477,   952,   773,   774,   952,   946,   424,   423,   427,    32,
     111,   371,   690,   423,   838,   965,   246,   241,   848,   848,
     427,   302,   303,   840,   845,   833,   371,   798,   103,   423,
     793,   814,   966,   423,   804,   805,   806,   807,   808,   966,
     424,   424,   350,   350,   306,   964,   954,   954,   957,   964,
     954,   954,   964,   955,   954,    75,   761,   300,   370,   663,
     306,   155,   663,   423,   954,   371,   685,   195,   195,   371,
     423,   538,   954,   236,   964,   891,   236,   954,   954,   350,
     569,   960,   423,   646,   646,   646,    96,   340,   671,    62,
     140,   718,   954,   646,   954,   646,   308,   646,   646,   197,
     159,   229,   258,   375,   572,   573,   574,   350,   730,   306,
     236,   107,   190,   964,   954,   245,   954,   252,   967,   424,
     427,   700,   702,   699,   702,   967,   647,   964,   953,   511,
     867,   966,   954,   954,    22,   370,   954,   165,   954,   165,
     966,   304,   354,   304,   354,   954,    22,   370,   954,   952,
      18,   120,   318,   580,   581,   582,   583,   968,   964,   954,
     482,   483,   968,   954,   244,    64,   244,   954,   475,   350,
     956,   966,   956,   427,   424,   427,   350,   306,   955,   964,
       3,    75,   125,   175,   263,   362,   370,   373,   437,   964,
     954,   551,   646,   954,   551,   954,   551,   964,   954,   954,
     954,   964,   954,    18,    24,   120,   258,   289,   318,   258,
     289,   318,   617,   289,   318,   289,   318,   289,   866,   966,
     963,   966,   165,   966,   964,   954,   954,   954,    18,   486,
     315,   964,   954,   954,   350,   350,    72,   361,   279,   191,
      31,   646,   191,   191,   371,   371,   191,   236,   652,   963,
     646,   646,   646,   646,   646,   646,   191,   652,   244,   150,
     350,   489,   423,   491,   492,   410,   424,   427,   891,    30,
     868,   867,   421,   421,   350,   350,   350,   423,   350,   962,
     872,   424,   427,   410,   602,    75,   124,   200,   201,   213,
     258,   342,   344,   756,   513,   954,   150,   306,   382,   566,
     573,   574,   134,   424,   511,   593,   594,   315,    19,   170,
     300,   338,   437,   438,   145,   956,   952,   453,   250,   504,
     147,   963,   617,   617,   617,   617,   241,   245,   250,   423,
     864,   865,   866,   315,   134,   133,   814,   646,   206,   505,
     507,   509,   511,   517,   520,   542,   543,   966,   389,   390,
     534,    31,   963,   245,   424,   697,   698,   703,    31,   197,
     297,   388,   704,   705,   706,   245,   464,   162,   162,   145,
     621,    31,   134,   477,   694,   646,   956,   646,   956,   717,
     245,   477,   477,   245,   477,   315,   145,   464,   477,   891,
     423,   424,   524,   170,   170,   170,   392,   953,   427,   551,
     552,   158,   667,   668,   964,    19,   675,   132,   320,   132,
     320,   302,   369,   220,   867,   954,   150,   245,   667,    48,
     477,   960,   340,   960,   240,   197,   646,   424,   422,   422,
     427,   920,   891,   122,   938,   939,    31,   424,   424,   424,
     424,   424,   150,   424,   424,   424,   424,   424,   427,   424,
     264,   929,   424,   892,   892,    11,   170,   191,   247,   410,
     411,   412,   414,   415,   416,   417,   418,   419,   917,   892,
     424,   424,   145,   150,   932,   933,   424,   406,   424,   424,
      31,   934,   920,   934,   934,   150,   424,   424,   968,   262,
     902,    31,   424,   427,   891,   968,   427,   891,   944,   891,
     966,   424,   424,   406,   892,   892,   128,   920,   150,   115,
     117,   139,   236,   241,   356,   365,   423,   128,   337,   945,
     891,   935,   891,   350,   718,   891,   423,   815,   343,   345,
     343,   345,   952,   825,   825,   825,   423,   815,   851,   852,
     853,   858,   861,   894,   960,   966,   386,   862,   921,   921,
     922,   424,   254,   906,    13,   424,   427,   829,   749,   962,
     889,   459,   891,   779,   788,   831,   247,   915,   918,   407,
     408,   691,   891,   840,   951,   802,   802,   837,   851,   386,
     863,   377,   794,   795,   966,   296,   796,   808,   809,   427,
     850,   410,   944,   964,   954,   954,   207,   953,   953,   245,
     953,   248,   245,   891,   521,   956,   423,   423,   423,   538,
     173,   523,   611,   477,   464,   621,   867,   392,   646,   646,
     646,   717,    74,   112,   259,   344,   954,   555,   954,   159,
     375,   350,   555,   572,   579,   954,   954,   954,   181,   236,
     647,   698,   702,   702,   418,   513,   120,   293,   318,   476,
     731,   134,   477,   134,   477,   954,   954,   954,   954,   582,
     583,   582,   424,   427,   584,   963,   424,   427,   410,   425,
     964,   258,   289,   318,    18,   120,   258,   289,   318,   867,
     230,   867,   964,   954,   207,   263,   236,   963,   263,   953,
     368,   350,   215,   215,   215,   350,   350,   306,   350,   350,
     306,   350,   306,   350,   306,   350,   477,   867,    20,    40,
     318,   731,   134,   477,   350,   954,   964,   954,   652,   867,
     191,   652,   652,   956,   956,   652,   191,   191,   191,   191,
     191,   191,   652,   490,   498,   499,   968,    44,    85,   109,
     124,   128,   146,   161,   236,   244,   277,   493,   247,   414,
     415,   551,   620,   702,   918,   963,   972,     3,   624,   424,
     421,   424,   962,   422,   962,   163,   218,   890,   218,   890,
     890,   962,   221,   424,   619,   620,   245,   207,   410,   757,
     757,   757,   757,   757,   757,   757,    60,    66,    76,   103,
     105,   177,   231,   236,   272,   285,   364,   514,   515,   516,
     434,   464,   954,   464,   249,   577,   952,   424,   427,   954,
     953,   158,   300,   953,   962,   359,   522,   291,   340,    96,
     523,   952,   603,   625,   626,   963,   424,   427,   954,   952,
     954,   389,   544,   423,   506,   952,   424,   427,   424,   427,
     244,   480,   244,   245,   535,   814,   350,   952,   424,   427,
     103,   410,   707,   963,   464,   340,   701,   702,   389,   706,
     708,   108,   183,   311,   369,   739,   159,   814,   477,   867,
     954,   477,   371,   477,   371,   477,   477,   952,   952,   954,
     597,   477,   966,   306,   306,   306,   953,   671,   427,   964,
     389,   427,   669,   248,   132,   132,   953,   666,   477,   964,
     621,   694,   551,   646,   191,   924,   424,   347,   891,   126,
     867,   891,   891,   891,   932,   867,   892,   115,   117,   231,
     241,   892,   892,   892,   892,   892,   892,   892,   892,   892,
     892,   891,   891,   933,   932,   888,   888,   867,   424,   424,
     424,   920,   424,   427,    48,   893,   424,   968,   899,   269,
     335,   901,   424,   427,   382,   895,    31,   424,   885,   963,
     891,    28,    28,   891,   424,   891,   150,   423,   923,   891,
     892,   892,   128,   128,   891,   424,   128,   891,   825,   825,
     825,   825,   952,   952,   952,   815,   852,   853,    31,   854,
     966,   427,    84,   151,   179,   194,   204,   226,   299,   855,
     854,    31,   854,   966,   423,   943,   891,   158,   842,   427,
     828,   829,   828,   424,   906,   423,   907,   966,   891,   906,
     963,   379,   922,   424,   424,   422,   424,   423,   691,   424,
     246,    86,   891,   796,   424,   427,   944,   949,   424,   427,
     805,   863,   946,   757,   153,   313,   341,   680,   145,   680,
     424,   423,   526,   527,   687,   894,   966,   523,   523,   611,
     958,   424,   105,   177,   231,   612,    31,   954,   371,   371,
     646,   646,   646,   646,   647,   964,   350,   181,   418,   359,
     231,   480,    96,   231,   330,   333,   480,   359,   954,   966,
     581,   483,   620,   968,   350,   350,   306,   152,   247,   333,
     629,   630,   152,   247,   637,   638,   350,   350,   306,   424,
     424,   424,   965,   963,   963,   963,   954,   145,   145,   291,
     145,   165,   964,   954,   954,   964,   954,   954,   954,   954,
     954,   954,   954,    66,   478,   963,   963,   359,   966,   954,
     579,   424,   652,   191,   191,   652,   652,   652,   652,   652,
     652,   371,   496,   497,   424,   427,   416,   423,   461,   500,
     551,   765,   963,   765,   231,   277,   765,   765,   611,   962,
     389,   390,   422,   422,   424,   889,   952,   757,   103,   962,
     963,   103,   963,   103,   963,   103,   963,   103,   954,   103,
     954,   103,   954,   423,   646,   954,   892,   106,   167,   105,
     236,   195,   952,   708,   565,   423,   592,   594,   577,   953,
     953,   867,    31,   952,   392,   145,   604,   424,   427,   866,
     577,   241,   423,   790,    96,   229,   508,   510,   512,   520,
     966,   534,   518,   176,   533,   509,   543,    71,   342,   536,
     389,   752,   963,   685,   703,   891,   891,   427,   423,   704,
     617,   350,   555,   424,   477,   956,   956,   477,   477,   315,
     953,   953,   953,   551,   155,   668,   675,   150,   191,   191,
     191,   191,   236,   656,   963,   891,   424,   424,   933,   150,
     115,   117,   241,   423,   424,   395,   897,   920,   284,    48,
     387,   387,   424,   891,   229,   891,   427,   896,   869,   889,
     892,   892,   891,   923,   424,    28,    28,   891,   891,   128,
     891,   424,   952,   952,   952,   952,   424,   966,   423,   852,
     194,   253,   856,   852,   856,   194,   855,   856,   194,   423,
     966,   423,   921,    48,   160,   843,   424,   424,   906,   908,
     966,   922,   906,   963,   718,   241,   814,   795,   410,   808,
     796,   965,   350,   663,   150,   611,   891,   424,   427,   389,
      66,   688,   688,   424,   424,   708,   106,   167,   105,   373,
     867,   956,   956,   954,   359,   236,   236,   965,   966,   867,
     477,   477,   410,   964,   954,   954,   962,   962,   867,   427,
     962,   962,   427,   964,   954,   954,   953,   953,   646,   953,
     134,   646,   867,   477,   477,   191,   652,   652,   434,   110,
     499,   461,   501,   502,   963,   963,   236,   416,   523,   963,
     963,   422,   152,   180,   152,   150,   610,   965,   891,   231,
     515,   708,   522,   371,   537,   578,   582,   315,   371,   814,
     423,   954,   121,   605,   385,   607,   963,   646,   505,    96,
     424,   427,   389,   535,   131,   171,   423,   534,   108,   120,
     269,   954,    52,    60,   210,   150,   423,   963,   700,   709,
     710,   967,   708,   952,   178,   556,   477,   477,   477,   954,
     248,   477,   667,   656,   656,   656,   656,   892,   150,   423,
     923,   423,   424,   427,   424,   893,   284,   424,   376,   327,
     424,   424,   424,   892,   892,   891,   854,   423,   953,   852,
     245,   371,   857,   852,   194,   852,   865,   423,   865,   966,
     424,   920,   891,   388,   903,   906,   906,   261,   909,   424,
     889,   424,   811,   948,   667,   245,   667,   424,   708,   527,
     247,   718,   646,   371,   646,   689,   689,   285,   708,   537,
     424,   478,   620,   423,   960,   718,   630,   423,   423,   638,
     389,   291,   389,   389,   145,   478,   652,   491,   963,   424,
     427,   523,   671,    31,   723,   723,   952,   611,   424,   537,
     216,   525,   173,   424,   427,   954,   956,   752,   577,   302,
     329,   606,   423,   133,   506,   424,   510,   249,   536,    22,
      70,    77,   104,   174,   333,   519,   519,   951,   535,   303,
     303,    60,   248,    60,   646,   686,   687,   702,   424,   427,
     862,   555,   229,   375,   557,   558,   477,   892,   923,   424,
     898,   920,    48,   229,   405,   953,   424,   891,   423,   852,
     857,   424,   865,   424,   904,   905,   966,    48,   828,   906,
     669,   680,   477,   688,   537,   423,   646,   690,   690,   952,
     537,   611,   371,   479,   923,   694,   145,   633,   717,   923,
     923,   645,   646,   645,   646,   953,   477,   502,   723,    34,
     169,   145,   151,   260,   323,   245,   529,   530,   531,   342,
     582,   577,   140,   632,   891,   276,   534,   533,   513,   424,
     536,   248,   248,   424,   427,   704,   709,   116,   375,   555,
     424,   424,   424,   284,   376,   424,   953,   424,   427,    31,
     920,   278,   303,   910,   150,   689,   386,   528,   718,   691,
     691,   522,   611,   891,   424,   251,   308,   282,   634,   633,
     424,   424,   389,   121,   108,   369,   245,   531,   245,   530,
     954,   646,    31,   424,   960,   535,   534,   389,   481,   687,
     708,    23,   184,   740,   424,   905,   907,    42,    86,   360,
     891,   911,   912,   911,   424,   667,   690,   423,   611,   424,
     525,   960,    48,   634,   646,   302,    51,   229,   295,   318,
     532,   532,   629,   423,   536,   535,   480,   536,   232,   423,
     735,   737,   742,   792,   797,   803,   814,   912,   302,   144,
     267,   144,   267,   477,   691,   891,   529,   694,   646,   607,
      17,   103,   236,     4,   608,   609,   962,   963,   968,   536,
     862,   736,   737,   738,   815,   816,    28,   424,   611,   133,
     424,   427,   424,   426,   912,   276,   609,   738,   960,   423,
     608,   424
};

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		(-2)
#define YYEOF		0

#define YYACCEPT	goto yyacceptlab
#define YYABORT		goto yyabortlab
#define YYERROR		goto yyerrorlab


/* Like YYERROR except do call yyerror.  This remains here temporarily
   to ease the transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */

#define YYFAIL		goto yyerrlab

#define YYRECOVERING()  (!!yyerrstatus)

#define YYBACKUP(Token, Value)					\
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    {								\
      yychar = (Token);						\
      yylval = (Value);						\
      yytoken = YYTRANSLATE (yychar);				\
      YYPOPSTACK (1);						\
      goto yybackup;						\
    }								\
  else								\
    {								\
      yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \
      YYERROR;							\
    }								\
while (YYID (0))


#define YYTERROR	1
#define YYERRCODE	256


/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
   If N is 0, then set CURRENT to the empty location which ends
   the previous symbol: RHS[0] (always defined).  */

#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N)				\
    do									\
      if (YYID (N))                                                    \
	{								\
	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
	}								\
      else								\
	{								\
	  (Current).first_line   = (Current).last_line   =		\
	    YYRHSLOC (Rhs, 0).last_line;				\
	  (Current).first_column = (Current).last_column =		\
	    YYRHSLOC (Rhs, 0).last_column;				\
	}								\
    while (YYID (0))
#endif


/* YY_LOCATION_PRINT -- Print the location on the stream.
   This macro was not mandated originally: define only if we know
   we won't break user code: when these are the locations we know.  */

#ifndef YY_LOCATION_PRINT
# if YYLTYPE_IS_TRIVIAL
#  define YY_LOCATION_PRINT(File, Loc)			\
     fprintf (File, "%d.%d-%d.%d",			\
	      (Loc).first_line, (Loc).first_column,	\
	      (Loc).last_line,  (Loc).last_column)
# else
#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif


/* YYLEX -- calling `yylex' with the right arguments.  */

#ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
#else
# define YYLEX yylex (&yylval, &yylloc, yyscanner)
#endif

/* Enable debugging if requested.  */
#if YYDEBUG

# ifndef YYFPRINTF
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
#  define YYFPRINTF fprintf
# endif

# define YYDPRINTF(Args)			\
do {						\
  if (yydebug)					\
    YYFPRINTF Args;				\
} while (YYID (0))

# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
do {									  \
  if (yydebug)								  \
    {									  \
      YYFPRINTF (stderr, "%s ", Title);					  \
      yy_symbol_print (stderr,						  \
		  Type, Value, Location, yyscanner); \
      YYFPRINTF (stderr, "\n");						  \
    }									  \
} while (YYID (0))


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
    YYLTYPE const * const yylocationp;
    core_yyscan_t yyscanner;
#endif
{
  if (!yyvaluep)
    return;
  YYUSE (yylocationp);
  YYUSE (yyscanner);
# ifdef YYPRINT
  if (yytype < YYNTOKENS)
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
  YYUSE (yyoutput);
# endif
  switch (yytype)
    {
      default:
	break;
    }
}


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
    YYLTYPE const * const yylocationp;
    core_yyscan_t yyscanner;
#endif
{
  if (yytype < YYNTOKENS)
    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
  else
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);

  YY_LOCATION_PRINT (yyoutput, *yylocationp);
  YYFPRINTF (yyoutput, ": ");
  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner);
  YYFPRINTF (yyoutput, ")");
}

/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included).                                                   |
`------------------------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
#else
static void
yy_stack_print (yybottom, yytop)
    yytype_int16 *yybottom;
    yytype_int16 *yytop;
#endif
{
  YYFPRINTF (stderr, "Stack now");
  for (; yybottom <= yytop; yybottom++)
    {
      int yybot = *yybottom;
      YYFPRINTF (stderr, " %d", yybot);
    }
  YYFPRINTF (stderr, "\n");
}

# define YY_STACK_PRINT(Bottom, Top)				\
do {								\
  if (yydebug)							\
    yy_stack_print ((Bottom), (Top));				\
} while (YYID (0))


/*------------------------------------------------.
| Report that the YYRULE is going to be reduced.  |
`------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner)
#else
static void
yy_reduce_print (yyvsp, yylsp, yyrule, yyscanner)
    YYSTYPE *yyvsp;
    YYLTYPE *yylsp;
    int yyrule;
    core_yyscan_t yyscanner;
#endif
{
  int yynrhs = yyr2[yyrule];
  int yyi;
  unsigned long int yylno = yyrline[yyrule];
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
	     yyrule - 1, yylno);
  /* The symbols being reduced.  */
  for (yyi = 0; yyi < yynrhs; yyi++)
    {
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
		       &(yyvsp[(yyi + 1) - (yynrhs)])
		       , &(yylsp[(yyi + 1) - (yynrhs)])		       , yyscanner);
      YYFPRINTF (stderr, "\n");
    }
}

# define YY_REDUCE_PRINT(Rule)		\
do {					\
  if (yydebug)				\
    yy_reduce_print (yyvsp, yylsp, Rule, yyscanner); \
} while (YYID (0))

/* Nonzero means print parse trace.  It is left uninitialized so that
   multiple parsers can coexist.  */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */


/* YYINITDEPTH -- initial size of the parser's stacks.  */
#ifndef	YYINITDEPTH
# define YYINITDEPTH 200
#endif

/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   if the built-in stack extension method is used).

   Do not make this value too large; the results are undefined if
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   evaluated with infinite-precision integer arithmetic.  */

#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif



#if YYERROR_VERBOSE

# ifndef yystrlen
#  if defined __GLIBC__ && defined _STRING_H
#   define yystrlen strlen
#  else
/* Return the length of YYSTR.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
    const char *yystr;
#endif
{
  YYSIZE_T yylen;
  for (yylen = 0; yystr[yylen]; yylen++)
    continue;
  return yylen;
}
#  endif
# endif

# ifndef yystpcpy
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
#   define yystpcpy stpcpy
#  else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   YYDEST.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
    char *yydest;
    const char *yysrc;
#endif
{
  char *yyd = yydest;
  const char *yys = yysrc;

  while ((*yyd++ = *yys++) != '\0')
    continue;

  return yyd - 1;
}
#  endif
# endif

# ifndef yytnamerr
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   quotes and backslashes, so that it's suitable for yyerror.  The
   heuristic is that double-quoting is unnecessary unless the string
   contains an apostrophe, a comma, or backslash (other than
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
   null, do not copy; instead, return the length of what the result
   would have been.  */
static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
  if (*yystr == '"')
    {
      YYSIZE_T yyn = 0;
      char const *yyp = yystr;

      for (;;)
	switch (*++yyp)
	  {
	  case '\'':
	  case ',':
	    goto do_not_strip_quotes;

	  case '\\':
	    if (*++yyp != '\\')
	      goto do_not_strip_quotes;
	    /* Fall through.  */
	  default:
	    if (yyres)
	      yyres[yyn] = *yyp;
	    yyn++;
	    break;

	  case '"':
	    if (yyres)
	      yyres[yyn] = '\0';
	    return yyn;
	  }
    do_not_strip_quotes: ;
    }

  if (! yyres)
    return yystrlen (yystr);

  return yystpcpy (yyres, yystr) - yyres;
}
# endif

/* Copy into YYRESULT an error message about the unexpected token
   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
   including the terminating null byte.  If YYRESULT is null, do not
   copy anything; just return the number of bytes that would be
   copied.  As a special case, return 0 if an ordinary "syntax error"
   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
   size calculation.  */
static YYSIZE_T
yysyntax_error (char *yyresult, int yystate, int yychar)
{
  int yyn = yypact[yystate];

  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
    return 0;
  else
    {
      int yytype = YYTRANSLATE (yychar);
      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
      YYSIZE_T yysize = yysize0;
      YYSIZE_T yysize1;
      int yysize_overflow = 0;
      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
      int yyx;

# if 0
      /* This is so xgettext sees the translatable formats that are
	 constructed on the fly.  */
      YY_("syntax error, unexpected %s");
      YY_("syntax error, unexpected %s, expecting %s");
      YY_("syntax error, unexpected %s, expecting %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
# endif
      char *yyfmt;
      char const *yyf;
      static char const yyunexpected[] = "syntax error, unexpected %s";
      static char const yyexpecting[] = ", expecting %s";
      static char const yyor[] = " or %s";
      char yyformat[sizeof yyunexpected
		    + sizeof yyexpecting - 1
		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
		       * (sizeof yyor - 1))];
      char const *yyprefix = yyexpecting;

      /* Start YYX at -YYN if negative to avoid negative indexes in
	 YYCHECK.  */
      int yyxbegin = yyn < 0 ? -yyn : 0;

      /* Stay within bounds of both yycheck and yytname.  */
      int yychecklim = YYLAST - yyn + 1;
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
      int yycount = 1;

      yyarg[0] = yytname[yytype];
      yyfmt = yystpcpy (yyformat, yyunexpected);

      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
	  {
	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
	      {
		yycount = 1;
		yysize = yysize0;
		yyformat[sizeof yyunexpected - 1] = '\0';
		break;
	      }
	    yyarg[yycount++] = yytname[yyx];
	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
	    yysize_overflow |= (yysize1 < yysize);
	    yysize = yysize1;
	    yyfmt = yystpcpy (yyfmt, yyprefix);
	    yyprefix = yyor;
	  }

      yyf = YY_(yyformat);
      yysize1 = yysize + yystrlen (yyf);
      yysize_overflow |= (yysize1 < yysize);
      yysize = yysize1;

      if (yysize_overflow)
	return YYSIZE_MAXIMUM;

      if (yyresult)
	{
	  /* Avoid sprintf, as that infringes on the user's name space.
	     Don't have undefined behavior even if the translation
	     produced a string with the wrong number of "%s"s.  */
	  char *yyp = yyresult;
	  int yyi = 0;
	  while ((*yyp = *yyf) != '\0')
	    {
	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
		{
		  yyp += yytnamerr (yyp, yyarg[yyi++]);
		  yyf += 2;
		}
	      else
		{
		  yyp++;
		  yyf++;
		}
	    }
	}
      return yysize;
    }
}
#endif /* YYERROR_VERBOSE */


/*-----------------------------------------------.
| Release the memory associated to this symbol.  |
`-----------------------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner)
#else
static void
yydestruct (yymsg, yytype, yyvaluep, yylocationp, yyscanner)
    const char *yymsg;
    int yytype;
    YYSTYPE *yyvaluep;
    YYLTYPE *yylocationp;
    core_yyscan_t yyscanner;
#endif
{
  YYUSE (yyvaluep);
  YYUSE (yylocationp);
  YYUSE (yyscanner);

  if (!yymsg)
    yymsg = "Deleting";
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);

  switch (yytype)
    {

      default:
	break;
    }
}

/* Prevent warnings from -Wmissing-prototypes.  */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (core_yyscan_t yyscanner);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */





/*-------------------------.
| yyparse or yypush_parse.  |
`-------------------------*/

#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
    void *YYPARSE_PARAM;
#endif
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (core_yyscan_t yyscanner)
#else
int
yyparse (yyscanner)
    core_yyscan_t yyscanner;
#endif
#endif
{
/* The lookahead symbol.  */
int yychar;

/* The semantic value of the lookahead symbol.  */
YYSTYPE yylval;

/* Location data for the lookahead symbol.  */
YYLTYPE yylloc;

    /* Number of syntax errors so far.  */
    int yynerrs;

    int yystate;
    /* Number of tokens to shift before error messages enabled.  */
    int yyerrstatus;

    /* The stacks and their tools:
       `yyss': related to states.
       `yyvs': related to semantic values.
       `yyls': related to locations.

       Refer to the stacks thru separate pointers, to allow yyoverflow
       to reallocate them elsewhere.  */

    /* The state stack.  */
    yytype_int16 yyssa[YYINITDEPTH];
    yytype_int16 *yyss;
    yytype_int16 *yyssp;

    /* The semantic value stack.  */
    YYSTYPE yyvsa[YYINITDEPTH];
    YYSTYPE *yyvs;
    YYSTYPE *yyvsp;

    /* The location stack.  */
    YYLTYPE yylsa[YYINITDEPTH];
    YYLTYPE *yyls;
    YYLTYPE *yylsp;

    /* The locations where the error started and ended.  */
    YYLTYPE yyerror_range[2];

    YYSIZE_T yystacksize;

  int yyn;
  int yyresult;
  /* Lookahead token as an internal (translated) token number.  */
  int yytoken;
  /* The variables used to return semantic value and location from the
     action routines.  */
  YYSTYPE yyval;
  YYLTYPE yyloc;

#if YYERROR_VERBOSE
  /* Buffer for error messages, and its allocated size.  */
  char yymsgbuf[128];
  char *yymsg = yymsgbuf;
  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif

#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))

  /* The number of symbols on the RHS of the reduced rule.
     Keep to zero when no symbol should be popped.  */
  int yylen = 0;

  yytoken = 0;
  yyss = yyssa;
  yyvs = yyvsa;
  yyls = yylsa;
  yystacksize = YYINITDEPTH;

  YYDPRINTF ((stderr, "Starting parse\n"));

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY; /* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */
  yyssp = yyss;
  yyvsp = yyvs;
  yylsp = yyls;

#if YYLTYPE_IS_TRIVIAL
  /* Initialize the default location before parsing starts.  */
  yylloc.first_line   = yylloc.last_line   = 1;
  yylloc.first_column = yylloc.last_column = 1;
#endif

  goto yysetstate;

/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate.  |
`------------------------------------------------------------*/
 yynewstate:
  /* In all cases, when you get here, the value and location stacks
     have just been pushed.  So pushing a state here evens the stacks.  */
  yyssp++;

 yysetstate:
  *yyssp = yystate;

  if (yyss + yystacksize - 1 <= yyssp)
    {
      /* Get the current used size of the three stacks, in elements.  */
      YYSIZE_T yysize = yyssp - yyss + 1;

#ifdef yyoverflow
      {
	/* Give user a chance to reallocate the stack.  Use copies of
	   these so that the &'s don't force the real ones into
	   memory.  */
	YYSTYPE *yyvs1 = yyvs;
	yytype_int16 *yyss1 = yyss;
	YYLTYPE *yyls1 = yyls;

	/* Each stack pointer address is followed by the size of the
	   data in use in that stack, in bytes.  This used to be a
	   conditional around just the two extra args, but that might
	   be undefined if yyoverflow is a macro.  */
	yyoverflow (YY_("memory exhausted"),
		    &yyss1, yysize * sizeof (*yyssp),
		    &yyvs1, yysize * sizeof (*yyvsp),
		    &yyls1, yysize * sizeof (*yylsp),
		    &yystacksize);

	yyls = yyls1;
	yyss = yyss1;
	yyvs = yyvs1;
      }
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
      goto yyexhaustedlab;
# else
      /* Extend the stack our own way.  */
      if (YYMAXDEPTH <= yystacksize)
	goto yyexhaustedlab;
      yystacksize *= 2;
      if (YYMAXDEPTH < yystacksize)
	yystacksize = YYMAXDEPTH;

      {
	yytype_int16 *yyss1 = yyss;
	union yyalloc *yyptr =
	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
	if (! yyptr)
	  goto yyexhaustedlab;
	YYSTACK_RELOCATE (yyss_alloc, yyss);
	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
	YYSTACK_RELOCATE (yyls_alloc, yyls);
#  undef YYSTACK_RELOCATE
	if (yyss1 != yyssa)
	  YYSTACK_FREE (yyss1);
      }
# endif
#endif /* no yyoverflow */

      yyssp = yyss + yysize - 1;
      yyvsp = yyvs + yysize - 1;
      yylsp = yyls + yysize - 1;

      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
		  (unsigned long int) yystacksize));

      if (yyss + yystacksize - 1 <= yyssp)
	YYABORT;
    }

  YYDPRINTF ((stderr, "Entering state %d\n", yystate));

  if (yystate == YYFINAL)
    YYACCEPT;

  goto yybackup;

/*-----------.
| yybackup.  |
`-----------*/
yybackup:

  /* Do appropriate processing given the current state.  Read a
     lookahead token if we need one and don't already have one.  */

  /* First try to decide what to do without reference to lookahead token.  */
  yyn = yypact[yystate];
  if (yyn == YYPACT_NINF)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
  if (yychar == YYEMPTY)
    {
      YYDPRINTF ((stderr, "Reading a token: "));
      yychar = YYLEX;
    }

  if (yychar <= YYEOF)
    {
      yychar = yytoken = YYEOF;
      YYDPRINTF ((stderr, "Now at end of input.\n"));
    }
  else
    {
      yytoken = YYTRANSLATE (yychar);
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
    }

  /* If the proper action on seeing token YYTOKEN is to reduce or to
     detect an error, take that action.  */
  yyn += yytoken;
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
    goto yydefault;
  yyn = yytable[yyn];
  if (yyn <= 0)
    {
      if (yyn == 0 || yyn == YYTABLE_NINF)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }

  /* Count tokens shifted since error; after three, turn off error
     status.  */
  if (yyerrstatus)
    yyerrstatus--;

  /* Shift the lookahead token.  */
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);

  /* Discard the shifted token.  */
  yychar = YYEMPTY;

  yystate = yyn;
  *++yyvsp = yylval;
  *++yylsp = yylloc;
  goto yynewstate;


/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state.  |
`-----------------------------------------------------------*/
yydefault:
  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;
  goto yyreduce;


/*-----------------------------.
| yyreduce -- Do a reduction.  |
`-----------------------------*/
yyreduce:
  /* yyn is the number of a rule to reduce with.  */
  yylen = yyr2[yyn];

  /* If YYLEN is nonzero, implement the default value of the action:
     `$$ = $1'.

     Otherwise, the following line sets YYVAL to garbage.
     This behavior is undocumented and Bison
     users should not rely upon it.  Assigning to YYVAL
     unconditionally makes the parser a bit smaller, and it avoids a
     GCC warning that YYVAL may be used uninitialized.  */
  yyval = yyvsp[1-yylen];

  /* Default location.  */
  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
  YY_REDUCE_PRINT (yyn);
  switch (yyn)
    {
        case 2:

/* Line 1455 of yacc.c  */
#line 656 "gram.y"
    {
				pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list);
			;}
    break;

  case 3:

/* Line 1455 of yacc.c  */
#line 663 "gram.y"
    {
					if ((yyvsp[(3) - (3)].node) != NULL)
						(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
					else
						(yyval.list) = (yyvsp[(1) - (3)].list);
				;}
    break;

  case 4:

/* Line 1455 of yacc.c  */
#line 670 "gram.y"
    {
					if ((yyvsp[(1) - (1)].node) != NULL)
						(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
					else
						(yyval.list) = NIL;
				;}
    break;

  case 115:

/* Line 1455 of yacc.c  */
#line 790 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 116:

/* Line 1455 of yacc.c  */
#line 801 "gram.y"
    {
					CreateRoleStmt *n = makeNode(CreateRoleStmt);
					n->stmt_type = ROLESTMT_ROLE;
					n->role = (yyvsp[(3) - (5)].str);
					n->options = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 117:

/* Line 1455 of yacc.c  */
#line 811 "gram.y"
    {;}
    break;

  case 118:

/* Line 1455 of yacc.c  */
#line 812 "gram.y"
    {;}
    break;

  case 119:

/* Line 1455 of yacc.c  */
#line 821 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 120:

/* Line 1455 of yacc.c  */
#line 822 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 121:

/* Line 1455 of yacc.c  */
#line 826 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 122:

/* Line 1455 of yacc.c  */
#line 827 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 123:

/* Line 1455 of yacc.c  */
#line 832 "gram.y"
    {
					(yyval.defelt) = makeDefElem("password",
									 (Node *)makeString((yyvsp[(2) - (2)].str)));
				;}
    break;

  case 124:

/* Line 1455 of yacc.c  */
#line 837 "gram.y"
    {
					(yyval.defelt) = makeDefElem("password", NULL);
				;}
    break;

  case 125:

/* Line 1455 of yacc.c  */
#line 841 "gram.y"
    {
					(yyval.defelt) = makeDefElem("encryptedPassword",
									 (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 126:

/* Line 1455 of yacc.c  */
#line 846 "gram.y"
    {
					(yyval.defelt) = makeDefElem("unencryptedPassword",
									 (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 127:

/* Line 1455 of yacc.c  */
#line 851 "gram.y"
    {
					(yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(TRUE));
				;}
    break;

  case 128:

/* Line 1455 of yacc.c  */
#line 855 "gram.y"
    {
					(yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[(3) - (3)].ival)));
				;}
    break;

  case 129:

/* Line 1455 of yacc.c  */
#line 859 "gram.y"
    {
					(yyval.defelt) = makeDefElem("validUntil", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 130:

/* Line 1455 of yacc.c  */
#line 864 "gram.y"
    {
					(yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[(2) - (2)].list));
				;}
    break;

  case 131:

/* Line 1455 of yacc.c  */
#line 868 "gram.y"
    {
					/*
					 * We handle identifiers that aren't parser keywords with
					 * the following special-case codes, to avoid bloating the
					 * size of the main parser.
					 */
					if (strcmp((yyvsp[(1) - (1)].str), "superuser") == 0)
						(yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(TRUE));
					else if (strcmp((yyvsp[(1) - (1)].str), "nosuperuser") == 0)
						(yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(FALSE));
					else if (strcmp((yyvsp[(1) - (1)].str), "createuser") == 0)
					{
						/* For backwards compatibility, synonym for SUPERUSER */
						(yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(TRUE));
					}
					else if (strcmp((yyvsp[(1) - (1)].str), "nocreateuser") == 0)
					{
						/* For backwards compatibility, synonym for SUPERUSER */
						(yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(FALSE));
					}
					else if (strcmp((yyvsp[(1) - (1)].str), "createrole") == 0)
						(yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(TRUE));
					else if (strcmp((yyvsp[(1) - (1)].str), "nocreaterole") == 0)
						(yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(FALSE));
					else if (strcmp((yyvsp[(1) - (1)].str), "replication") == 0)
						(yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(TRUE));
					else if (strcmp((yyvsp[(1) - (1)].str), "noreplication") == 0)
						(yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(FALSE));
					else if (strcmp((yyvsp[(1) - (1)].str), "createdb") == 0)
						(yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(TRUE));
					else if (strcmp((yyvsp[(1) - (1)].str), "nocreatedb") == 0)
						(yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(FALSE));
					else if (strcmp((yyvsp[(1) - (1)].str), "login") == 0)
						(yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(TRUE));
					else if (strcmp((yyvsp[(1) - (1)].str), "nologin") == 0)
						(yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(FALSE));
					else if (strcmp((yyvsp[(1) - (1)].str), "noinherit") == 0)
					{
						/*
						 * Note that INHERIT is a keyword, so it's handled by main parser, but
						 * NOINHERIT is handled here.
						 */
						(yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(FALSE));
					}
					else
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("unrecognized role option \"%s\"", (yyvsp[(1) - (1)].str)),
									 parser_errposition((yylsp[(1) - (1)]))));
				;}
    break;

  case 132:

/* Line 1455 of yacc.c  */
#line 921 "gram.y"
    { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); ;}
    break;

  case 133:

/* Line 1455 of yacc.c  */
#line 924 "gram.y"
    {
					(yyval.defelt) = makeDefElem("sysid", (Node *)makeInteger((yyvsp[(2) - (2)].ival)));
				;}
    break;

  case 134:

/* Line 1455 of yacc.c  */
#line 928 "gram.y"
    {
					(yyval.defelt) = makeDefElem("adminmembers", (Node *)(yyvsp[(2) - (2)].list));
				;}
    break;

  case 135:

/* Line 1455 of yacc.c  */
#line 932 "gram.y"
    {
					(yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[(2) - (2)].list));
				;}
    break;

  case 136:

/* Line 1455 of yacc.c  */
#line 936 "gram.y"
    {
					(yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[(3) - (3)].list));
				;}
    break;

  case 137:

/* Line 1455 of yacc.c  */
#line 940 "gram.y"
    {
					(yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[(3) - (3)].list));
				;}
    break;

  case 138:

/* Line 1455 of yacc.c  */
#line 954 "gram.y"
    {
					CreateRoleStmt *n = makeNode(CreateRoleStmt);
					n->stmt_type = ROLESTMT_USER;
					n->role = (yyvsp[(3) - (5)].str);
					n->options = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 139:

/* Line 1455 of yacc.c  */
#line 972 "gram.y"
    {
					AlterRoleStmt *n = makeNode(AlterRoleStmt);
					n->role = (yyvsp[(3) - (5)].str);
					n->action = +1;	/* add, if there are members */
					n->options = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				 ;}
    break;

  case 140:

/* Line 1455 of yacc.c  */
#line 982 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 141:

/* Line 1455 of yacc.c  */
#line 983 "gram.y"
    { (yyval.str) = (yyvsp[(3) - (3)].str); ;}
    break;

  case 142:

/* Line 1455 of yacc.c  */
#line 988 "gram.y"
    {
					AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
					n->role = (yyvsp[(3) - (5)].str);
					n->database = (yyvsp[(4) - (5)].str);
					n->setstmt = (yyvsp[(5) - (5)].vsetstmt);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 143:

/* Line 1455 of yacc.c  */
#line 1006 "gram.y"
    {
					AlterRoleStmt *n = makeNode(AlterRoleStmt);
					n->role = (yyvsp[(3) - (5)].str);
					n->action = +1;	/* add, if there are members */
					n->options = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				 ;}
    break;

  case 144:

/* Line 1455 of yacc.c  */
#line 1018 "gram.y"
    {
					AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
					n->role = (yyvsp[(3) - (4)].str);
					n->database = NULL;
					n->setstmt = (yyvsp[(4) - (4)].vsetstmt);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 145:

/* Line 1455 of yacc.c  */
#line 1039 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->missing_ok = FALSE;
					n->roles = (yyvsp[(3) - (3)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 146:

/* Line 1455 of yacc.c  */
#line 1046 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->missing_ok = TRUE;
					n->roles = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 147:

/* Line 1455 of yacc.c  */
#line 1065 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->missing_ok = FALSE;
					n->roles = (yyvsp[(3) - (3)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 148:

/* Line 1455 of yacc.c  */
#line 1072 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->roles = (yyvsp[(5) - (5)].list);
					n->missing_ok = TRUE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 149:

/* Line 1455 of yacc.c  */
#line 1089 "gram.y"
    {
					CreateRoleStmt *n = makeNode(CreateRoleStmt);
					n->stmt_type = ROLESTMT_GROUP;
					n->role = (yyvsp[(3) - (5)].str);
					n->options = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 150:

/* Line 1455 of yacc.c  */
#line 1107 "gram.y"
    {
					AlterRoleStmt *n = makeNode(AlterRoleStmt);
					n->role = (yyvsp[(3) - (6)].str);
					n->action = (yyvsp[(4) - (6)].ival);
					n->options = list_make1(makeDefElem("rolemembers",
														(Node *)(yyvsp[(6) - (6)].list)));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 151:

/* Line 1455 of yacc.c  */
#line 1117 "gram.y"
    { (yyval.ival) = +1; ;}
    break;

  case 152:

/* Line 1455 of yacc.c  */
#line 1118 "gram.y"
    { (yyval.ival) = -1; ;}
    break;

  case 153:

/* Line 1455 of yacc.c  */
#line 1131 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->missing_ok = FALSE;
					n->roles = (yyvsp[(3) - (3)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 154:

/* Line 1455 of yacc.c  */
#line 1138 "gram.y"
    {
					DropRoleStmt *n = makeNode(DropRoleStmt);
					n->missing_ok = TRUE;
					n->roles = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 155:

/* Line 1455 of yacc.c  */
#line 1155 "gram.y"
    {
					CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
					/* One can omit the schema name or the authorization id. */
					if ((yyvsp[(3) - (6)].str) != NULL)
						n->schemaname = (yyvsp[(3) - (6)].str);
					else
						n->schemaname = (yyvsp[(5) - (6)].str);
					n->authid = (yyvsp[(5) - (6)].str);
					n->schemaElts = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 156:

/* Line 1455 of yacc.c  */
#line 1167 "gram.y"
    {
					CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
					/* ...but not both */
					n->schemaname = (yyvsp[(3) - (4)].str);
					n->authid = NULL;
					n->schemaElts = (yyvsp[(4) - (4)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 157:

/* Line 1455 of yacc.c  */
#line 1178 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 158:

/* Line 1455 of yacc.c  */
#line 1179 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 159:

/* Line 1455 of yacc.c  */
#line 1183 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 160:

/* Line 1455 of yacc.c  */
#line 1184 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 167:

/* Line 1455 of yacc.c  */
#line 1212 "gram.y"
    {
					VariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt);
					n->is_local = false;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 168:

/* Line 1455 of yacc.c  */
#line 1218 "gram.y"
    {
					VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
					n->is_local = true;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 169:

/* Line 1455 of yacc.c  */
#line 1224 "gram.y"
    {
					VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
					n->is_local = false;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 170:

/* Line 1455 of yacc.c  */
#line 1233 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = (yyvsp[(1) - (3)].str);
					n->args = (yyvsp[(3) - (3)].list);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 171:

/* Line 1455 of yacc.c  */
#line 1241 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = (yyvsp[(1) - (3)].str);
					n->args = (yyvsp[(3) - (3)].list);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 172:

/* Line 1455 of yacc.c  */
#line 1249 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_DEFAULT;
					n->name = (yyvsp[(1) - (3)].str);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 173:

/* Line 1455 of yacc.c  */
#line 1256 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_DEFAULT;
					n->name = (yyvsp[(1) - (3)].str);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 174:

/* Line 1455 of yacc.c  */
#line 1263 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_CURRENT;
					n->name = (yyvsp[(1) - (3)].str);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 175:

/* Line 1455 of yacc.c  */
#line 1271 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = "timezone";
					if ((yyvsp[(3) - (3)].node) != NULL)
						n->args = list_make1((yyvsp[(3) - (3)].node));
					else
						n->kind = VAR_SET_DEFAULT;
					(yyval.vsetstmt) = n;
				;}
    break;

  case 176:

/* Line 1455 of yacc.c  */
#line 1282 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_MULTI;
					n->name = "TRANSACTION";
					n->args = (yyvsp[(2) - (2)].list);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 177:

/* Line 1455 of yacc.c  */
#line 1290 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_MULTI;
					n->name = "SESSION CHARACTERISTICS";
					n->args = (yyvsp[(5) - (5)].list);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 178:

/* Line 1455 of yacc.c  */
#line 1298 "gram.y"
    {
					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("current database cannot be changed"),
							 parser_errposition((yylsp[(2) - (2)]))));
					(yyval.vsetstmt) = NULL; /*not reached*/
				;}
    break;

  case 179:

/* Line 1455 of yacc.c  */
#line 1306 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = "search_path";
					n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])));
					(yyval.vsetstmt) = n;
				;}
    break;

  case 180:

/* Line 1455 of yacc.c  */
#line 1314 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = "client_encoding";
					if ((yyvsp[(2) - (2)].str) != NULL)
						n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])));
					else
						n->kind = VAR_SET_DEFAULT;
					(yyval.vsetstmt) = n;
				;}
    break;

  case 181:

/* Line 1455 of yacc.c  */
#line 1325 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = "role";
					n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])));
					(yyval.vsetstmt) = n;
				;}
    break;

  case 182:

/* Line 1455 of yacc.c  */
#line 1333 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = "session_authorization";
					n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)])));
					(yyval.vsetstmt) = n;
				;}
    break;

  case 183:

/* Line 1455 of yacc.c  */
#line 1341 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_DEFAULT;
					n->name = "session_authorization";
					(yyval.vsetstmt) = n;
				;}
    break;

  case 184:

/* Line 1455 of yacc.c  */
#line 1348 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = "xmloption";
					n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].ival) == XMLOPTION_DOCUMENT ? "DOCUMENT" : "CONTENT", (yylsp[(3) - (3)])));
					(yyval.vsetstmt) = n;
				;}
    break;

  case 185:

/* Line 1455 of yacc.c  */
#line 1357 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 186:

/* Line 1455 of yacc.c  */
#line 1359 "gram.y"
    {
					(yyval.str) = palloc(strlen((yyvsp[(1) - (3)].str)) + strlen((yyvsp[(3) - (3)].str)) + 2);
					sprintf((yyval.str), "%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str));
				;}
    break;

  case 187:

/* Line 1455 of yacc.c  */
#line 1365 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 188:

/* Line 1455 of yacc.c  */
#line 1366 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 189:

/* Line 1455 of yacc.c  */
#line 1370 "gram.y"
    { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;}
    break;

  case 190:

/* Line 1455 of yacc.c  */
#line 1372 "gram.y"
    { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;}
    break;

  case 191:

/* Line 1455 of yacc.c  */
#line 1375 "gram.y"
    { (yyval.str) = "read uncommitted"; ;}
    break;

  case 192:

/* Line 1455 of yacc.c  */
#line 1376 "gram.y"
    { (yyval.str) = "read committed"; ;}
    break;

  case 193:

/* Line 1455 of yacc.c  */
#line 1377 "gram.y"
    { (yyval.str) = "repeatable read"; ;}
    break;

  case 194:

/* Line 1455 of yacc.c  */
#line 1378 "gram.y"
    { (yyval.str) = "serializable"; ;}
    break;

  case 195:

/* Line 1455 of yacc.c  */
#line 1382 "gram.y"
    { (yyval.str) = "true"; ;}
    break;

  case 196:

/* Line 1455 of yacc.c  */
#line 1383 "gram.y"
    { (yyval.str) = "false"; ;}
    break;

  case 197:

/* Line 1455 of yacc.c  */
#line 1384 "gram.y"
    { (yyval.str) = "on"; ;}
    break;

  case 198:

/* Line 1455 of yacc.c  */
#line 1390 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 199:

/* Line 1455 of yacc.c  */
#line 1403 "gram.y"
    {
					(yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 200:

/* Line 1455 of yacc.c  */
#line 1407 "gram.y"
    {
					(yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 201:

/* Line 1455 of yacc.c  */
#line 1411 "gram.y"
    {
					TypeName *t = (yyvsp[(1) - (3)].typnam);
					if ((yyvsp[(3) - (3)].list) != NIL)
					{
						A_Const *n = (A_Const *) linitial((yyvsp[(3) - (3)].list));
						if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0)
							ereport(ERROR,
									(errcode(ERRCODE_SYNTAX_ERROR),
									 errmsg("time zone interval must be HOUR or HOUR TO MINUTE"),
									 parser_errposition((yylsp[(3) - (3)]))));
					}
					t->typmods = (yyvsp[(3) - (3)].list);
					(yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t);
				;}
    break;

  case 202:

/* Line 1455 of yacc.c  */
#line 1426 "gram.y"
    {
					TypeName *t = (yyvsp[(1) - (6)].typnam);
					if ((yyvsp[(6) - (6)].list) != NIL)
					{
						A_Const *n = (A_Const *) linitial((yyvsp[(6) - (6)].list));
						if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0)
							ereport(ERROR,
									(errcode(ERRCODE_SYNTAX_ERROR),
									 errmsg("time zone interval must be HOUR or HOUR TO MINUTE"),
									 parser_errposition((yylsp[(6) - (6)]))));
						if (list_length((yyvsp[(6) - (6)].list)) != 1)
							ereport(ERROR,
									(errcode(ERRCODE_SYNTAX_ERROR),
									 errmsg("interval precision specified twice"),
									 parser_errposition((yylsp[(1) - (6)]))));
						t->typmods = lappend((yyvsp[(6) - (6)].list), makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)])));
					}
					else
						t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
												makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)])));
					(yyval.node) = makeStringConstCast((yyvsp[(5) - (6)].str), (yylsp[(5) - (6)]), t);
				;}
    break;

  case 203:

/* Line 1455 of yacc.c  */
#line 1448 "gram.y"
    { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;}
    break;

  case 204:

/* Line 1455 of yacc.c  */
#line 1449 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 205:

/* Line 1455 of yacc.c  */
#line 1450 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 206:

/* Line 1455 of yacc.c  */
#line 1454 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 207:

/* Line 1455 of yacc.c  */
#line 1455 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 208:

/* Line 1455 of yacc.c  */
#line 1456 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 209:

/* Line 1455 of yacc.c  */
#line 1460 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 210:

/* Line 1455 of yacc.c  */
#line 1461 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 211:

/* Line 1455 of yacc.c  */
#line 1466 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_RESET;
					n->name = (yyvsp[(2) - (2)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 212:

/* Line 1455 of yacc.c  */
#line 1473 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_RESET;
					n->name = "timezone";
					(yyval.node) = (Node *) n;
				;}
    break;

  case 213:

/* Line 1455 of yacc.c  */
#line 1480 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_RESET;
					n->name = "transaction_isolation";
					(yyval.node) = (Node *) n;
				;}
    break;

  case 214:

/* Line 1455 of yacc.c  */
#line 1487 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_RESET;
					n->name = "session_authorization";
					(yyval.node) = (Node *) n;
				;}
    break;

  case 215:

/* Line 1455 of yacc.c  */
#line 1494 "gram.y"
    {
					VariableSetStmt *n = makeNode(VariableSetStmt);
					n->kind = VAR_RESET_ALL;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 216:

/* Line 1455 of yacc.c  */
#line 1503 "gram.y"
    { (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); ;}
    break;

  case 217:

/* Line 1455 of yacc.c  */
#line 1504 "gram.y"
    { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); ;}
    break;

  case 218:

/* Line 1455 of yacc.c  */
#line 1510 "gram.y"
    {
					VariableShowStmt *n = makeNode(VariableShowStmt);
					n->name = (yyvsp[(2) - (2)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 219:

/* Line 1455 of yacc.c  */
#line 1516 "gram.y"
    {
					VariableShowStmt *n = makeNode(VariableShowStmt);
					n->name = "timezone";
					(yyval.node) = (Node *) n;
				;}
    break;

  case 220:

/* Line 1455 of yacc.c  */
#line 1522 "gram.y"
    {
					VariableShowStmt *n = makeNode(VariableShowStmt);
					n->name = "transaction_isolation";
					(yyval.node) = (Node *) n;
				;}
    break;

  case 221:

/* Line 1455 of yacc.c  */
#line 1528 "gram.y"
    {
					VariableShowStmt *n = makeNode(VariableShowStmt);
					n->name = "session_authorization";
					(yyval.node) = (Node *) n;
				;}
    break;

  case 222:

/* Line 1455 of yacc.c  */
#line 1534 "gram.y"
    {
					VariableShowStmt *n = makeNode(VariableShowStmt);
					n->name = "all";
					(yyval.node) = (Node *) n;
				;}
    break;

  case 223:

/* Line 1455 of yacc.c  */
#line 1544 "gram.y"
    {
					ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt);
					n->constraints = (yyvsp[(3) - (4)].list);
					n->deferred    = (yyvsp[(4) - (4)].boolean);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 224:

/* Line 1455 of yacc.c  */
#line 1553 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 225:

/* Line 1455 of yacc.c  */
#line 1554 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 226:

/* Line 1455 of yacc.c  */
#line 1558 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 227:

/* Line 1455 of yacc.c  */
#line 1559 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 228:

/* Line 1455 of yacc.c  */
#line 1568 "gram.y"
    {
					CheckPointStmt *n = makeNode(CheckPointStmt);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 229:

/* Line 1455 of yacc.c  */
#line 1583 "gram.y"
    {
					DiscardStmt *n = makeNode(DiscardStmt);
					n->target = DISCARD_ALL;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 230:

/* Line 1455 of yacc.c  */
#line 1589 "gram.y"
    {
					DiscardStmt *n = makeNode(DiscardStmt);
					n->target = DISCARD_TEMP;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 231:

/* Line 1455 of yacc.c  */
#line 1595 "gram.y"
    {
					DiscardStmt *n = makeNode(DiscardStmt);
					n->target = DISCARD_TEMP;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 232:

/* Line 1455 of yacc.c  */
#line 1601 "gram.y"
    {
					DiscardStmt *n = makeNode(DiscardStmt);
					n->target = DISCARD_PLANS;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 233:

/* Line 1455 of yacc.c  */
#line 1619 "gram.y"
    {
					AlterTableStmt *n = makeNode(AlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = OBJECT_TABLE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 234:

/* Line 1455 of yacc.c  */
#line 1627 "gram.y"
    {
					AlterTableStmt *n = makeNode(AlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = OBJECT_INDEX;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 235:

/* Line 1455 of yacc.c  */
#line 1635 "gram.y"
    {
					AlterTableStmt *n = makeNode(AlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = OBJECT_SEQUENCE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 236:

/* Line 1455 of yacc.c  */
#line 1643 "gram.y"
    {
					AlterTableStmt *n = makeNode(AlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = OBJECT_VIEW;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 237:

/* Line 1455 of yacc.c  */
#line 1653 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 238:

/* Line 1455 of yacc.c  */
#line 1654 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 239:

/* Line 1455 of yacc.c  */
#line 1660 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_AddColumn;
					n->def = (yyvsp[(2) - (2)].node);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 240:

/* Line 1455 of yacc.c  */
#line 1668 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_AddColumn;
					n->def = (yyvsp[(3) - (3)].node);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 241:

/* Line 1455 of yacc.c  */
#line 1676 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_ColumnDefault;
					n->name = (yyvsp[(3) - (4)].str);
					n->def = (yyvsp[(4) - (4)].node);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 242:

/* Line 1455 of yacc.c  */
#line 1685 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropNotNull;
					n->name = (yyvsp[(3) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 243:

/* Line 1455 of yacc.c  */
#line 1693 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_SetNotNull;
					n->name = (yyvsp[(3) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 244:

/* Line 1455 of yacc.c  */
#line 1701 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_SetStatistics;
					n->name = (yyvsp[(3) - (6)].str);
					n->def = (Node *) makeInteger((yyvsp[(6) - (6)].ival));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 245:

/* Line 1455 of yacc.c  */
#line 1710 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_SetOptions;
					n->name = (yyvsp[(3) - (5)].str);
					n->def = (Node *) (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 246:

/* Line 1455 of yacc.c  */
#line 1719 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_ResetOptions;
					n->name = (yyvsp[(3) - (5)].str);
					n->def = (Node *) (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 247:

/* Line 1455 of yacc.c  */
#line 1728 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_SetStorage;
					n->name = (yyvsp[(3) - (6)].str);
					n->def = (Node *) makeString((yyvsp[(6) - (6)].str));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 248:

/* Line 1455 of yacc.c  */
#line 1737 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropColumn;
					n->name = (yyvsp[(5) - (6)].str);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->missing_ok = TRUE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 249:

/* Line 1455 of yacc.c  */
#line 1747 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropColumn;
					n->name = (yyvsp[(3) - (4)].str);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->missing_ok = FALSE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 250:

/* Line 1455 of yacc.c  */
#line 1760 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					ColumnDef *def = makeNode(ColumnDef);
					n->subtype = AT_AlterColumnType;
					n->name = (yyvsp[(3) - (8)].str);
					n->def = (Node *) def;
					/* We only use these three fields of the ColumnDef node */
					def->typeName = (yyvsp[(6) - (8)].typnam);
					def->collClause = (CollateClause *) (yyvsp[(7) - (8)].node);
					def->raw_default = (yyvsp[(8) - (8)].node);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 251:

/* Line 1455 of yacc.c  */
#line 1774 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_AddConstraint;
					n->def = (yyvsp[(2) - (2)].node);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 252:

/* Line 1455 of yacc.c  */
#line 1782 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_ValidateConstraint;
					n->name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 253:

/* Line 1455 of yacc.c  */
#line 1790 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropConstraint;
					n->name = (yyvsp[(5) - (6)].str);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->missing_ok = TRUE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 254:

/* Line 1455 of yacc.c  */
#line 1800 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropConstraint;
					n->name = (yyvsp[(3) - (4)].str);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->missing_ok = FALSE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 255:

/* Line 1455 of yacc.c  */
#line 1810 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_AddOids;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 256:

/* Line 1455 of yacc.c  */
#line 1817 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropOids;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 257:

/* Line 1455 of yacc.c  */
#line 1824 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_ClusterOn;
					n->name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 258:

/* Line 1455 of yacc.c  */
#line 1832 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropCluster;
					n->name = NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 259:

/* Line 1455 of yacc.c  */
#line 1840 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_EnableTrig;
					n->name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 260:

/* Line 1455 of yacc.c  */
#line 1848 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_EnableAlwaysTrig;
					n->name = (yyvsp[(4) - (4)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 261:

/* Line 1455 of yacc.c  */
#line 1856 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_EnableReplicaTrig;
					n->name = (yyvsp[(4) - (4)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 262:

/* Line 1455 of yacc.c  */
#line 1864 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_EnableTrigAll;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 263:

/* Line 1455 of yacc.c  */
#line 1871 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_EnableTrigUser;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 264:

/* Line 1455 of yacc.c  */
#line 1878 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DisableTrig;
					n->name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 265:

/* Line 1455 of yacc.c  */
#line 1886 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DisableTrigAll;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 266:

/* Line 1455 of yacc.c  */
#line 1893 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DisableTrigUser;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 267:

/* Line 1455 of yacc.c  */
#line 1900 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_EnableRule;
					n->name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 268:

/* Line 1455 of yacc.c  */
#line 1908 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_EnableAlwaysRule;
					n->name = (yyvsp[(4) - (4)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 269:

/* Line 1455 of yacc.c  */
#line 1916 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_EnableReplicaRule;
					n->name = (yyvsp[(4) - (4)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 270:

/* Line 1455 of yacc.c  */
#line 1924 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DisableRule;
					n->name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 271:

/* Line 1455 of yacc.c  */
#line 1932 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_AddInherit;
					n->def = (Node *) (yyvsp[(2) - (2)].range);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 272:

/* Line 1455 of yacc.c  */
#line 1940 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropInherit;
					n->def = (Node *) (yyvsp[(3) - (3)].range);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 273:

/* Line 1455 of yacc.c  */
#line 1948 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					TypeName *def = makeTypeNameFromNameList((yyvsp[(2) - (2)].list));
					def->location = (yylsp[(2) - (2)]);
					n->subtype = AT_AddOf;
					n->def = (Node *) def;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 274:

/* Line 1455 of yacc.c  */
#line 1958 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropOf;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 275:

/* Line 1455 of yacc.c  */
#line 1965 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_ChangeOwner;
					n->name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 276:

/* Line 1455 of yacc.c  */
#line 1973 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_SetTableSpace;
					n->name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 277:

/* Line 1455 of yacc.c  */
#line 1981 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_SetRelOptions;
					n->def = (Node *)(yyvsp[(2) - (2)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 278:

/* Line 1455 of yacc.c  */
#line 1989 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_ResetRelOptions;
					n->def = (Node *)(yyvsp[(2) - (2)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 279:

/* Line 1455 of yacc.c  */
#line 1996 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_GenericOptions;
					n->def = (Node *)(yyvsp[(1) - (1)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 280:

/* Line 1455 of yacc.c  */
#line 2005 "gram.y"
    { (yyval.node) = (yyvsp[(3) - (3)].node); ;}
    break;

  case 281:

/* Line 1455 of yacc.c  */
#line 2006 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 282:

/* Line 1455 of yacc.c  */
#line 2010 "gram.y"
    { (yyval.dbehavior) = DROP_CASCADE; ;}
    break;

  case 283:

/* Line 1455 of yacc.c  */
#line 2011 "gram.y"
    { (yyval.dbehavior) = DROP_RESTRICT; ;}
    break;

  case 284:

/* Line 1455 of yacc.c  */
#line 2012 "gram.y"
    { (yyval.dbehavior) = DROP_RESTRICT; /* default */ ;}
    break;

  case 285:

/* Line 1455 of yacc.c  */
#line 2017 "gram.y"
    {
					CollateClause *n = makeNode(CollateClause);
					n->arg = NULL;
					n->collname = (yyvsp[(2) - (2)].list);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 286:

/* Line 1455 of yacc.c  */
#line 2024 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 287:

/* Line 1455 of yacc.c  */
#line 2028 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 288:

/* Line 1455 of yacc.c  */
#line 2029 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 289:

/* Line 1455 of yacc.c  */
#line 2033 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 290:

/* Line 1455 of yacc.c  */
#line 2036 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 291:

/* Line 1455 of yacc.c  */
#line 2037 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 292:

/* Line 1455 of yacc.c  */
#line 2041 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 293:

/* Line 1455 of yacc.c  */
#line 2042 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;}
    break;

  case 294:

/* Line 1455 of yacc.c  */
#line 2048 "gram.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node));
				;}
    break;

  case 295:

/* Line 1455 of yacc.c  */
#line 2052 "gram.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL);
				;}
    break;

  case 296:

/* Line 1455 of yacc.c  */
#line 2056 "gram.y"
    {
					(yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (Node *) (yyvsp[(5) - (5)].node),
											 DEFELEM_UNSPEC);
				;}
    break;

  case 297:

/* Line 1455 of yacc.c  */
#line 2061 "gram.y"
    {
					(yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, DEFELEM_UNSPEC);
				;}
    break;

  case 298:

/* Line 1455 of yacc.c  */
#line 2076 "gram.y"
    {
					AlterTableStmt *n = makeNode(AlterTableStmt);

					/* can't use qualified_name, sigh */
					n->relation = makeRangeVarFromAnyName((yyvsp[(3) - (4)].list), (yylsp[(3) - (4)]), yyscanner);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = OBJECT_TYPE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 299:

/* Line 1455 of yacc.c  */
#line 2088 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 300:

/* Line 1455 of yacc.c  */
#line 2089 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 301:

/* Line 1455 of yacc.c  */
#line 2095 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_AddColumn;
					n->def = (yyvsp[(3) - (4)].node);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 302:

/* Line 1455 of yacc.c  */
#line 2104 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropColumn;
					n->name = (yyvsp[(5) - (6)].str);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->missing_ok = TRUE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 303:

/* Line 1455 of yacc.c  */
#line 2114 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					n->subtype = AT_DropColumn;
					n->name = (yyvsp[(3) - (4)].str);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->missing_ok = FALSE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 304:

/* Line 1455 of yacc.c  */
#line 2124 "gram.y"
    {
					AlterTableCmd *n = makeNode(AlterTableCmd);
					ColumnDef *def = makeNode(ColumnDef);
					n->subtype = AT_AlterColumnType;
					n->name = (yyvsp[(3) - (8)].str);
					n->def = (Node *) def;
					n->behavior = (yyvsp[(8) - (8)].dbehavior);
					/* We only use these three fields of the ColumnDef node */
					def->typeName = (yyvsp[(6) - (8)].typnam);
					def->collClause = (CollateClause *) (yyvsp[(7) - (8)].node);
					def->raw_default = NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 305:

/* Line 1455 of yacc.c  */
#line 2149 "gram.y"
    {
					ClosePortalStmt *n = makeNode(ClosePortalStmt);
					n->portalname = (yyvsp[(2) - (2)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 306:

/* Line 1455 of yacc.c  */
#line 2155 "gram.y"
    {
					ClosePortalStmt *n = makeNode(ClosePortalStmt);
					n->portalname = NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 307:

/* Line 1455 of yacc.c  */
#line 2183 "gram.y"
    {
					CopyStmt *n = makeNode(CopyStmt);
					n->relation = (yyvsp[(3) - (10)].range);
					n->query = NULL;
					n->attlist = (yyvsp[(4) - (10)].list);
					n->is_from = (yyvsp[(6) - (10)].boolean);
					n->filename = (yyvsp[(7) - (10)].str);

					n->options = NIL;
					/* Concatenate user-supplied flags */
					if ((yyvsp[(2) - (10)].defelt))
						n->options = lappend(n->options, (yyvsp[(2) - (10)].defelt));
					if ((yyvsp[(5) - (10)].defelt))
						n->options = lappend(n->options, (yyvsp[(5) - (10)].defelt));
					if ((yyvsp[(8) - (10)].defelt))
						n->options = lappend(n->options, (yyvsp[(8) - (10)].defelt));
					if ((yyvsp[(10) - (10)].list))
						n->options = list_concat(n->options, (yyvsp[(10) - (10)].list));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 308:

/* Line 1455 of yacc.c  */
#line 2204 "gram.y"
    {
					CopyStmt *n = makeNode(CopyStmt);
					n->relation = NULL;
					n->query = (yyvsp[(2) - (6)].node);
					n->attlist = NIL;
					n->is_from = false;
					n->filename = (yyvsp[(4) - (6)].str);
					n->options = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 309:

/* Line 1455 of yacc.c  */
#line 2217 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 310:

/* Line 1455 of yacc.c  */
#line 2218 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 311:

/* Line 1455 of yacc.c  */
#line 2227 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 312:

/* Line 1455 of yacc.c  */
#line 2228 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 313:

/* Line 1455 of yacc.c  */
#line 2229 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 314:

/* Line 1455 of yacc.c  */
#line 2232 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 315:

/* Line 1455 of yacc.c  */
#line 2233 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 316:

/* Line 1455 of yacc.c  */
#line 2238 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 317:

/* Line 1455 of yacc.c  */
#line 2239 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 318:

/* Line 1455 of yacc.c  */
#line 2244 "gram.y"
    {
					(yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"));
				;}
    break;

  case 319:

/* Line 1455 of yacc.c  */
#line 2248 "gram.y"
    {
					(yyval.defelt) = makeDefElem("oids", (Node *)makeInteger(TRUE));
				;}
    break;

  case 320:

/* Line 1455 of yacc.c  */
#line 2252 "gram.y"
    {
					(yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 321:

/* Line 1455 of yacc.c  */
#line 2256 "gram.y"
    {
					(yyval.defelt) = makeDefElem("null", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 322:

/* Line 1455 of yacc.c  */
#line 2260 "gram.y"
    {
					(yyval.defelt) = makeDefElem("format", (Node *)makeString("csv"));
				;}
    break;

  case 323:

/* Line 1455 of yacc.c  */
#line 2264 "gram.y"
    {
					(yyval.defelt) = makeDefElem("header", (Node *)makeInteger(TRUE));
				;}
    break;

  case 324:

/* Line 1455 of yacc.c  */
#line 2268 "gram.y"
    {
					(yyval.defelt) = makeDefElem("quote", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 325:

/* Line 1455 of yacc.c  */
#line 2272 "gram.y"
    {
					(yyval.defelt) = makeDefElem("escape", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 326:

/* Line 1455 of yacc.c  */
#line 2276 "gram.y"
    {
					(yyval.defelt) = makeDefElem("force_quote", (Node *)(yyvsp[(3) - (3)].list));
				;}
    break;

  case 327:

/* Line 1455 of yacc.c  */
#line 2280 "gram.y"
    {
					(yyval.defelt) = makeDefElem("force_quote", (Node *)makeNode(A_Star));
				;}
    break;

  case 328:

/* Line 1455 of yacc.c  */
#line 2284 "gram.y"
    {
					(yyval.defelt) = makeDefElem("force_not_null", (Node *)(yyvsp[(4) - (4)].list));
				;}
    break;

  case 329:

/* Line 1455 of yacc.c  */
#line 2288 "gram.y"
    {
					(yyval.defelt) = makeDefElem("encoding", (Node *)makeString((yyvsp[(2) - (2)].str)));
				;}
    break;

  case 330:

/* Line 1455 of yacc.c  */
#line 2297 "gram.y"
    {
					(yyval.defelt) = makeDefElem("format", (Node *)makeString("binary"));
				;}
    break;

  case 331:

/* Line 1455 of yacc.c  */
#line 2300 "gram.y"
    { (yyval.defelt) = NULL; ;}
    break;

  case 332:

/* Line 1455 of yacc.c  */
#line 2305 "gram.y"
    {
					(yyval.defelt) = makeDefElem("oids", (Node *)makeInteger(TRUE));
				;}
    break;

  case 333:

/* Line 1455 of yacc.c  */
#line 2308 "gram.y"
    { (yyval.defelt) = NULL; ;}
    break;

  case 334:

/* Line 1455 of yacc.c  */
#line 2313 "gram.y"
    {
					(yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 335:

/* Line 1455 of yacc.c  */
#line 2316 "gram.y"
    { (yyval.defelt) = NULL; ;}
    break;

  case 336:

/* Line 1455 of yacc.c  */
#line 2320 "gram.y"
    {;}
    break;

  case 337:

/* Line 1455 of yacc.c  */
#line 2321 "gram.y"
    {;}
    break;

  case 338:

/* Line 1455 of yacc.c  */
#line 2327 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
				;}
    break;

  case 339:

/* Line 1455 of yacc.c  */
#line 2331 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
				;}
    break;

  case 340:

/* Line 1455 of yacc.c  */
#line 2338 "gram.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node));
				;}
    break;

  case 341:

/* Line 1455 of yacc.c  */
#line 2344 "gram.y"
    { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 342:

/* Line 1455 of yacc.c  */
#line 2345 "gram.y"
    { (yyval.node) = (Node *) (yyvsp[(1) - (1)].value); ;}
    break;

  case 343:

/* Line 1455 of yacc.c  */
#line 2346 "gram.y"
    { (yyval.node) = (Node *) makeNode(A_Star); ;}
    break;

  case 344:

/* Line 1455 of yacc.c  */
#line 2347 "gram.y"
    { (yyval.node) = (Node *) (yyvsp[(2) - (3)].list); ;}
    break;

  case 345:

/* Line 1455 of yacc.c  */
#line 2348 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 346:

/* Line 1455 of yacc.c  */
#line 2353 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 347:

/* Line 1455 of yacc.c  */
#line 2357 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 348:

/* Line 1455 of yacc.c  */
#line 2364 "gram.y"
    { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 349:

/* Line 1455 of yacc.c  */
#line 2377 "gram.y"
    {
					CreateStmt *n = makeNode(CreateStmt);
					(yyvsp[(4) - (11)].range)->relpersistence = (yyvsp[(2) - (11)].ival);
					n->relation = (yyvsp[(4) - (11)].range);
					n->tableElts = (yyvsp[(6) - (11)].list);
					n->inhRelations = (yyvsp[(8) - (11)].list);
					n->constraints = NIL;
					n->options = (yyvsp[(9) - (11)].list);
					n->oncommit = (yyvsp[(10) - (11)].oncommit);
					n->tablespacename = (yyvsp[(11) - (11)].str);
					n->if_not_exists = false;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 350:

/* Line 1455 of yacc.c  */
#line 2393 "gram.y"
    {
					CreateStmt *n = makeNode(CreateStmt);
					(yyvsp[(7) - (14)].range)->relpersistence = (yyvsp[(2) - (14)].ival);
					n->relation = (yyvsp[(7) - (14)].range);
					n->tableElts = (yyvsp[(9) - (14)].list);
					n->inhRelations = (yyvsp[(11) - (14)].list);
					n->constraints = NIL;
					n->options = (yyvsp[(12) - (14)].list);
					n->oncommit = (yyvsp[(13) - (14)].oncommit);
					n->tablespacename = (yyvsp[(14) - (14)].str);
					n->if_not_exists = true;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 351:

/* Line 1455 of yacc.c  */
#line 2408 "gram.y"
    {
					CreateStmt *n = makeNode(CreateStmt);
					(yyvsp[(4) - (10)].range)->relpersistence = (yyvsp[(2) - (10)].ival);
					n->relation = (yyvsp[(4) - (10)].range);
					n->tableElts = (yyvsp[(7) - (10)].list);
					n->ofTypename = makeTypeNameFromNameList((yyvsp[(6) - (10)].list));
					n->ofTypename->location = (yylsp[(6) - (10)]);
					n->constraints = NIL;
					n->options = (yyvsp[(8) - (10)].list);
					n->oncommit = (yyvsp[(9) - (10)].oncommit);
					n->tablespacename = (yyvsp[(10) - (10)].str);
					n->if_not_exists = false;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 352:

/* Line 1455 of yacc.c  */
#line 2424 "gram.y"
    {
					CreateStmt *n = makeNode(CreateStmt);
					(yyvsp[(7) - (13)].range)->relpersistence = (yyvsp[(2) - (13)].ival);
					n->relation = (yyvsp[(7) - (13)].range);
					n->tableElts = (yyvsp[(10) - (13)].list);
					n->ofTypename = makeTypeNameFromNameList((yyvsp[(9) - (13)].list));
					n->ofTypename->location = (yylsp[(9) - (13)]);
					n->constraints = NIL;
					n->options = (yyvsp[(11) - (13)].list);
					n->oncommit = (yyvsp[(12) - (13)].oncommit);
					n->tablespacename = (yyvsp[(13) - (13)].str);
					n->if_not_exists = true;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 353:

/* Line 1455 of yacc.c  */
#line 2447 "gram.y"
    { (yyval.ival) = RELPERSISTENCE_TEMP; ;}
    break;

  case 354:

/* Line 1455 of yacc.c  */
#line 2448 "gram.y"
    { (yyval.ival) = RELPERSISTENCE_TEMP; ;}
    break;

  case 355:

/* Line 1455 of yacc.c  */
#line 2449 "gram.y"
    { (yyval.ival) = RELPERSISTENCE_TEMP; ;}
    break;

  case 356:

/* Line 1455 of yacc.c  */
#line 2450 "gram.y"
    { (yyval.ival) = RELPERSISTENCE_TEMP; ;}
    break;

  case 357:

/* Line 1455 of yacc.c  */
#line 2451 "gram.y"
    { (yyval.ival) = RELPERSISTENCE_TEMP; ;}
    break;

  case 358:

/* Line 1455 of yacc.c  */
#line 2452 "gram.y"
    { (yyval.ival) = RELPERSISTENCE_TEMP; ;}
    break;

  case 359:

/* Line 1455 of yacc.c  */
#line 2453 "gram.y"
    { (yyval.ival) = RELPERSISTENCE_UNLOGGED; ;}
    break;

  case 360:

/* Line 1455 of yacc.c  */
#line 2454 "gram.y"
    { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;}
    break;

  case 361:

/* Line 1455 of yacc.c  */
#line 2458 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 362:

/* Line 1455 of yacc.c  */
#line 2459 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 363:

/* Line 1455 of yacc.c  */
#line 2463 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 364:

/* Line 1455 of yacc.c  */
#line 2464 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 365:

/* Line 1455 of yacc.c  */
#line 2469 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 366:

/* Line 1455 of yacc.c  */
#line 2473 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 367:

/* Line 1455 of yacc.c  */
#line 2480 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 368:

/* Line 1455 of yacc.c  */
#line 2484 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 369:

/* Line 1455 of yacc.c  */
#line 2490 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 370:

/* Line 1455 of yacc.c  */
#line 2491 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 371:

/* Line 1455 of yacc.c  */
#line 2492 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 372:

/* Line 1455 of yacc.c  */
#line 2496 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 373:

/* Line 1455 of yacc.c  */
#line 2497 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 374:

/* Line 1455 of yacc.c  */
#line 2501 "gram.y"
    {
					ColumnDef *n = makeNode(ColumnDef);
					n->colname = (yyvsp[(1) - (3)].str);
					n->typeName = (yyvsp[(2) - (3)].typnam);
					n->inhcount = 0;
					n->is_local = true;
					n->is_not_null = false;
					n->is_from_type = false;
					n->storage = 0;
					n->raw_default = NULL;
					n->cooked_default = NULL;
					n->collOid = InvalidOid;
					SplitColQualList((yyvsp[(3) - (3)].list), &n->constraints, &n->collClause,
									 yyscanner);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 375:

/* Line 1455 of yacc.c  */
#line 2520 "gram.y"
    {
					ColumnDef *n = makeNode(ColumnDef);
					n->colname = (yyvsp[(1) - (4)].str);
					n->typeName = NULL;
					n->inhcount = 0;
					n->is_local = true;
					n->is_not_null = false;
					n->is_from_type = false;
					n->storage = 0;
					n->raw_default = NULL;
					n->cooked_default = NULL;
					n->collOid = InvalidOid;
					SplitColQualList((yyvsp[(4) - (4)].list), &n->constraints, &n->collClause,
									 yyscanner);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 376:

/* Line 1455 of yacc.c  */
#line 2539 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 377:

/* Line 1455 of yacc.c  */
#line 2540 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 378:

/* Line 1455 of yacc.c  */
#line 2545 "gram.y"
    {
					Constraint *n = (Constraint *) (yyvsp[(3) - (3)].node);
					Assert(IsA(n, Constraint));
					n->conname = (yyvsp[(2) - (3)].str);
					n->location = (yylsp[(1) - (3)]);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 379:

/* Line 1455 of yacc.c  */
#line 2552 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 380:

/* Line 1455 of yacc.c  */
#line 2553 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 381:

/* Line 1455 of yacc.c  */
#line 2555 "gram.y"
    {
					/*
					 * Note: the CollateClause is momentarily included in
					 * the list built by ColQualList, but we split it out
					 * again in SplitColQualList.
					 */
					CollateClause *n = makeNode(CollateClause);
					n->arg = NULL;
					n->collname = (yyvsp[(2) - (2)].list);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 382:

/* Line 1455 of yacc.c  */
#line 2586 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_NOTNULL;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 383:

/* Line 1455 of yacc.c  */
#line 2593 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_NULL;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 384:

/* Line 1455 of yacc.c  */
#line 2600 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_UNIQUE;
					n->location = (yylsp[(1) - (3)]);
					n->keys = NULL;
					n->options = (yyvsp[(2) - (3)].list);
					n->indexname = NULL;
					n->indexspace = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 385:

/* Line 1455 of yacc.c  */
#line 2611 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_PRIMARY;
					n->location = (yylsp[(1) - (4)]);
					n->keys = NULL;
					n->options = (yyvsp[(3) - (4)].list);
					n->indexname = NULL;
					n->indexspace = (yyvsp[(4) - (4)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 386:

/* Line 1455 of yacc.c  */
#line 2622 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_CHECK;
					n->location = (yylsp[(1) - (4)]);
					n->raw_expr = (yyvsp[(3) - (4)].node);
					n->cooked_expr = NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 387:

/* Line 1455 of yacc.c  */
#line 2631 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_DEFAULT;
					n->location = (yylsp[(1) - (2)]);
					n->raw_expr = (yyvsp[(2) - (2)].node);
					n->cooked_expr = NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 388:

/* Line 1455 of yacc.c  */
#line 2640 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_FOREIGN;
					n->location = (yylsp[(1) - (5)]);
					n->pktable			= (yyvsp[(2) - (5)].range);
					n->fk_attrs			= NIL;
					n->pk_attrs			= (yyvsp[(3) - (5)].list);
					n->fk_matchtype		= (yyvsp[(4) - (5)].ival);
					n->fk_upd_action	= (char) ((yyvsp[(5) - (5)].ival) >> 8);
					n->fk_del_action	= (char) ((yyvsp[(5) - (5)].ival) & 0xFF);
					n->skip_validation  = false;
					n->initially_valid  = true;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 389:

/* Line 1455 of yacc.c  */
#line 2673 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_ATTR_DEFERRABLE;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 390:

/* Line 1455 of yacc.c  */
#line 2680 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_ATTR_NOT_DEFERRABLE;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 391:

/* Line 1455 of yacc.c  */
#line 2687 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_ATTR_DEFERRED;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 392:

/* Line 1455 of yacc.c  */
#line 2694 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_ATTR_IMMEDIATE;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 393:

/* Line 1455 of yacc.c  */
#line 2713 "gram.y"
    {
					InhRelation *n = makeNode(InhRelation);
					n->relation = (yyvsp[(2) - (3)].range);
					n->options = (yyvsp[(3) - (3)].ival);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 394:

/* Line 1455 of yacc.c  */
#line 2722 "gram.y"
    { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;}
    break;

  case 395:

/* Line 1455 of yacc.c  */
#line 2723 "gram.y"
    { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;}
    break;

  case 396:

/* Line 1455 of yacc.c  */
#line 2724 "gram.y"
    { (yyval.ival) = 0; ;}
    break;

  case 397:

/* Line 1455 of yacc.c  */
#line 2728 "gram.y"
    { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; ;}
    break;

  case 398:

/* Line 1455 of yacc.c  */
#line 2729 "gram.y"
    { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; ;}
    break;

  case 399:

/* Line 1455 of yacc.c  */
#line 2730 "gram.y"
    { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; ;}
    break;

  case 400:

/* Line 1455 of yacc.c  */
#line 2731 "gram.y"
    { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; ;}
    break;

  case 401:

/* Line 1455 of yacc.c  */
#line 2732 "gram.y"
    { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; ;}
    break;

  case 402:

/* Line 1455 of yacc.c  */
#line 2733 "gram.y"
    { (yyval.ival) = CREATE_TABLE_LIKE_ALL; ;}
    break;

  case 403:

/* Line 1455 of yacc.c  */
#line 2743 "gram.y"
    {
					Constraint *n = (Constraint *) (yyvsp[(3) - (3)].node);
					Assert(IsA(n, Constraint));
					n->conname = (yyvsp[(2) - (3)].str);
					n->location = (yylsp[(1) - (3)]);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 404:

/* Line 1455 of yacc.c  */
#line 2750 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 405:

/* Line 1455 of yacc.c  */
#line 2755 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_CHECK;
					n->location = (yylsp[(1) - (5)]);
					n->raw_expr = (yyvsp[(3) - (5)].node);
					n->cooked_expr = NULL;
					processCASbits((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), "CHECK",
								   NULL, NULL, NULL,
								   yyscanner);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 406:

/* Line 1455 of yacc.c  */
#line 2768 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_UNIQUE;
					n->location = (yylsp[(1) - (7)]);
					n->keys = (yyvsp[(3) - (7)].list);
					n->options = (yyvsp[(5) - (7)].list);
					n->indexname = NULL;
					n->indexspace = (yyvsp[(6) - (7)].str);
					processCASbits((yyvsp[(7) - (7)].ival), (yylsp[(7) - (7)]), "UNIQUE",
								   &n->deferrable, &n->initdeferred, NULL,
								   yyscanner);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 407:

/* Line 1455 of yacc.c  */
#line 2782 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_UNIQUE;
					n->location = (yylsp[(1) - (3)]);
					n->keys = NIL;
					n->options = NIL;
					n->indexname = (yyvsp[(2) - (3)].str);
					n->indexspace = NULL;
					processCASbits((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]), "UNIQUE",
								   &n->deferrable, &n->initdeferred, NULL,
								   yyscanner);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 408:

/* Line 1455 of yacc.c  */
#line 2797 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_PRIMARY;
					n->location = (yylsp[(1) - (8)]);
					n->keys = (yyvsp[(4) - (8)].list);
					n->options = (yyvsp[(6) - (8)].list);
					n->indexname = NULL;
					n->indexspace = (yyvsp[(7) - (8)].str);
					processCASbits((yyvsp[(8) - (8)].ival), (yylsp[(8) - (8)]), "PRIMARY KEY",
								   &n->deferrable, &n->initdeferred, NULL,
								   yyscanner);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 409:

/* Line 1455 of yacc.c  */
#line 2811 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_PRIMARY;
					n->location = (yylsp[(1) - (4)]);
					n->keys = NIL;
					n->options = NIL;
					n->indexname = (yyvsp[(3) - (4)].str);
					n->indexspace = NULL;
					processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "PRIMARY KEY",
								   &n->deferrable, &n->initdeferred, NULL,
								   yyscanner);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 410:

/* Line 1455 of yacc.c  */
#line 2827 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_EXCLUSION;
					n->location = (yylsp[(1) - (9)]);
					n->access_method	= (yyvsp[(2) - (9)].str);
					n->exclusions		= (yyvsp[(4) - (9)].list);
					n->options			= (yyvsp[(6) - (9)].list);
					n->indexname		= NULL;
					n->indexspace		= (yyvsp[(7) - (9)].str);
					n->where_clause		= (yyvsp[(8) - (9)].node);
					processCASbits((yyvsp[(9) - (9)].ival), (yylsp[(9) - (9)]), "EXCLUDE",
								   &n->deferrable, &n->initdeferred, NULL,
								   yyscanner);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 411:

/* Line 1455 of yacc.c  */
#line 2844 "gram.y"
    {
					Constraint *n = makeNode(Constraint);
					n->contype = CONSTR_FOREIGN;
					n->location = (yylsp[(1) - (11)]);
					n->pktable			= (yyvsp[(7) - (11)].range);
					n->fk_attrs			= (yyvsp[(4) - (11)].list);
					n->pk_attrs			= (yyvsp[(8) - (11)].list);
					n->fk_matchtype		= (yyvsp[(9) - (11)].ival);
					n->fk_upd_action	= (char) ((yyvsp[(10) - (11)].ival) >> 8);
					n->fk_del_action	= (char) ((yyvsp[(10) - (11)].ival) & 0xFF);
					processCASbits((yyvsp[(11) - (11)].ival), (yylsp[(11) - (11)]), "FOREIGN KEY",
								   &n->deferrable, &n->initdeferred,
								   &n->skip_validation,
								   yyscanner);
					n->initially_valid = !n->skip_validation;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 412:

/* Line 1455 of yacc.c  */
#line 2864 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 413:

/* Line 1455 of yacc.c  */
#line 2865 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 414:

/* Line 1455 of yacc.c  */
#line 2869 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 415:

/* Line 1455 of yacc.c  */
#line 2870 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 416:

/* Line 1455 of yacc.c  */
#line 2874 "gram.y"
    {
					(yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str));
				;}
    break;

  case 417:

/* Line 1455 of yacc.c  */
#line 2880 "gram.y"
    {
				(yyval.ival) = FKCONSTR_MATCH_FULL;
			;}
    break;

  case 418:

/* Line 1455 of yacc.c  */
#line 2884 "gram.y"
    {
				ereport(ERROR,
						(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
						 errmsg("MATCH PARTIAL not yet implemented"),
						 parser_errposition((yylsp[(1) - (2)]))));
				(yyval.ival) = FKCONSTR_MATCH_PARTIAL;
			;}
    break;

  case 419:

/* Line 1455 of yacc.c  */
#line 2892 "gram.y"
    {
				(yyval.ival) = FKCONSTR_MATCH_UNSPECIFIED;
			;}
    break;

  case 420:

/* Line 1455 of yacc.c  */
#line 2896 "gram.y"
    {
				(yyval.ival) = FKCONSTR_MATCH_UNSPECIFIED;
			;}
    break;

  case 421:

/* Line 1455 of yacc.c  */
#line 2902 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
    break;

  case 422:

/* Line 1455 of yacc.c  */
#line 2904 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 423:

/* Line 1455 of yacc.c  */
#line 2908 "gram.y"
    {
				(yyval.list) = list_make2((yyvsp[(1) - (3)].ielem), (yyvsp[(3) - (3)].list));
			;}
    break;

  case 424:

/* Line 1455 of yacc.c  */
#line 2913 "gram.y"
    {
				(yyval.list) = list_make2((yyvsp[(1) - (6)].ielem), (yyvsp[(5) - (6)].list));
			;}
    break;

  case 425:

/* Line 1455 of yacc.c  */
#line 2919 "gram.y"
    { (yyval.node) = (yyvsp[(3) - (4)].node); ;}
    break;

  case 426:

/* Line 1455 of yacc.c  */
#line 2920 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 427:

/* Line 1455 of yacc.c  */
#line 2931 "gram.y"
    { (yyval.ival) = ((yyvsp[(1) - (1)].ival) << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); ;}
    break;

  case 428:

/* Line 1455 of yacc.c  */
#line 2933 "gram.y"
    { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[(1) - (1)].ival) & 0xFF); ;}
    break;

  case 429:

/* Line 1455 of yacc.c  */
#line 2935 "gram.y"
    { (yyval.ival) = ((yyvsp[(1) - (2)].ival) << 8) | ((yyvsp[(2) - (2)].ival) & 0xFF); ;}
    break;

  case 430:

/* Line 1455 of yacc.c  */
#line 2937 "gram.y"
    { (yyval.ival) = ((yyvsp[(2) - (2)].ival) << 8) | ((yyvsp[(1) - (2)].ival) & 0xFF); ;}
    break;

  case 431:

/* Line 1455 of yacc.c  */
#line 2939 "gram.y"
    { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); ;}
    break;

  case 432:

/* Line 1455 of yacc.c  */
#line 2942 "gram.y"
    { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;}
    break;

  case 433:

/* Line 1455 of yacc.c  */
#line 2945 "gram.y"
    { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;}
    break;

  case 434:

/* Line 1455 of yacc.c  */
#line 2949 "gram.y"
    { (yyval.ival) = FKCONSTR_ACTION_NOACTION; ;}
    break;

  case 435:

/* Line 1455 of yacc.c  */
#line 2950 "gram.y"
    { (yyval.ival) = FKCONSTR_ACTION_RESTRICT; ;}
    break;

  case 436:

/* Line 1455 of yacc.c  */
#line 2951 "gram.y"
    { (yyval.ival) = FKCONSTR_ACTION_CASCADE; ;}
    break;

  case 437:

/* Line 1455 of yacc.c  */
#line 2952 "gram.y"
    { (yyval.ival) = FKCONSTR_ACTION_SETNULL; ;}
    break;

  case 438:

/* Line 1455 of yacc.c  */
#line 2953 "gram.y"
    { (yyval.ival) = FKCONSTR_ACTION_SETDEFAULT; ;}
    break;

  case 439:

/* Line 1455 of yacc.c  */
#line 2956 "gram.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 440:

/* Line 1455 of yacc.c  */
#line 2957 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 441:

/* Line 1455 of yacc.c  */
#line 2962 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 442:

/* Line 1455 of yacc.c  */
#line 2963 "gram.y"
    { (yyval.list) = list_make1(defWithOids(true)); ;}
    break;

  case 443:

/* Line 1455 of yacc.c  */
#line 2964 "gram.y"
    { (yyval.list) = list_make1(defWithOids(false)); ;}
    break;

  case 444:

/* Line 1455 of yacc.c  */
#line 2965 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 445:

/* Line 1455 of yacc.c  */
#line 2968 "gram.y"
    { (yyval.oncommit) = ONCOMMIT_DROP; ;}
    break;

  case 446:

/* Line 1455 of yacc.c  */
#line 2969 "gram.y"
    { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; ;}
    break;

  case 447:

/* Line 1455 of yacc.c  */
#line 2970 "gram.y"
    { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; ;}
    break;

  case 448:

/* Line 1455 of yacc.c  */
#line 2971 "gram.y"
    { (yyval.oncommit) = ONCOMMIT_NOOP; ;}
    break;

  case 449:

/* Line 1455 of yacc.c  */
#line 2974 "gram.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 450:

/* Line 1455 of yacc.c  */
#line 2975 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 451:

/* Line 1455 of yacc.c  */
#line 2978 "gram.y"
    { (yyval.str) = (yyvsp[(4) - (4)].str); ;}
    break;

  case 452:

/* Line 1455 of yacc.c  */
#line 2979 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 453:

/* Line 1455 of yacc.c  */
#line 2982 "gram.y"
    { (yyval.str) = (yyvsp[(3) - (3)].str); ;}
    break;

  case 454:

/* Line 1455 of yacc.c  */
#line 2993 "gram.y"
    {
					/*
					 * When the SelectStmt is a set-operation tree, we must
					 * stuff the INTO information into the leftmost component
					 * Select, because that's where analyze.c will expect
					 * to find it.	Similarly, the output column names must
					 * be attached to that Select's target list.
					 */
					SelectStmt *n = findLeftmostSelect((SelectStmt *) (yyvsp[(6) - (7)].node));
					if (n->intoClause != NULL)
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("CREATE TABLE AS cannot specify INTO"),
								 parser_errposition(exprLocation((Node *) n->intoClause))));
					(yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival);
					n->intoClause = (yyvsp[(4) - (7)].into);
					/* Implement WITH NO DATA by forcing top-level LIMIT 0 */
					if (!(yyvsp[(7) - (7)].boolean))
						((SelectStmt *) (yyvsp[(6) - (7)].node))->limitCount = makeIntConst(0, -1);
					(yyval.node) = (yyvsp[(6) - (7)].node);
				;}
    break;

  case 455:

/* Line 1455 of yacc.c  */
#line 3018 "gram.y"
    {
					(yyval.into) = makeNode(IntoClause);
					(yyval.into)->rel = (yyvsp[(1) - (5)].range);
					(yyval.into)->colNames = (yyvsp[(2) - (5)].list);
					(yyval.into)->options = (yyvsp[(3) - (5)].list);
					(yyval.into)->onCommit = (yyvsp[(4) - (5)].oncommit);
					(yyval.into)->tableSpaceName = (yyvsp[(5) - (5)].str);
				;}
    break;

  case 456:

/* Line 1455 of yacc.c  */
#line 3029 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 457:

/* Line 1455 of yacc.c  */
#line 3030 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 458:

/* Line 1455 of yacc.c  */
#line 3034 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 459:

/* Line 1455 of yacc.c  */
#line 3035 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 460:

/* Line 1455 of yacc.c  */
#line 3040 "gram.y"
    {
					ColumnDef *n = makeNode(ColumnDef);
					n->colname = (yyvsp[(1) - (1)].str);
					n->typeName = NULL;
					n->inhcount = 0;
					n->is_local = true;
					n->is_not_null = false;
					n->is_from_type = false;
					n->storage = 0;
					n->raw_default = NULL;
					n->cooked_default = NULL;
					n->collClause = NULL;
					n->collOid = InvalidOid;
					n->constraints = NIL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 461:

/* Line 1455 of yacc.c  */
#line 3059 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 462:

/* Line 1455 of yacc.c  */
#line 3060 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 463:

/* Line 1455 of yacc.c  */
#line 3061 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 464:

/* Line 1455 of yacc.c  */
#line 3075 "gram.y"
    {
					CreateSeqStmt *n = makeNode(CreateSeqStmt);
					(yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival);
					n->sequence = (yyvsp[(4) - (5)].range);
					n->options = (yyvsp[(5) - (5)].list);
					n->ownerId = InvalidOid;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 465:

/* Line 1455 of yacc.c  */
#line 3087 "gram.y"
    {
					AlterSeqStmt *n = makeNode(AlterSeqStmt);
					n->sequence = (yyvsp[(3) - (4)].range);
					n->options = (yyvsp[(4) - (4)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 466:

/* Line 1455 of yacc.c  */
#line 3095 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 467:

/* Line 1455 of yacc.c  */
#line 3096 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 468:

/* Line 1455 of yacc.c  */
#line 3099 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 469:

/* Line 1455 of yacc.c  */
#line 3100 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 470:

/* Line 1455 of yacc.c  */
#line 3104 "gram.y"
    {
					(yyval.defelt) = makeDefElem("cache", (Node *)(yyvsp[(2) - (2)].value));
				;}
    break;

  case 471:

/* Line 1455 of yacc.c  */
#line 3108 "gram.y"
    {
					(yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(TRUE));
				;}
    break;

  case 472:

/* Line 1455 of yacc.c  */
#line 3112 "gram.y"
    {
					(yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(FALSE));
				;}
    break;

  case 473:

/* Line 1455 of yacc.c  */
#line 3116 "gram.y"
    {
					(yyval.defelt) = makeDefElem("increment", (Node *)(yyvsp[(3) - (3)].value));
				;}
    break;

  case 474:

/* Line 1455 of yacc.c  */
#line 3120 "gram.y"
    {
					(yyval.defelt) = makeDefElem("maxvalue", (Node *)(yyvsp[(2) - (2)].value));
				;}
    break;

  case 475:

/* Line 1455 of yacc.c  */
#line 3124 "gram.y"
    {
					(yyval.defelt) = makeDefElem("minvalue", (Node *)(yyvsp[(2) - (2)].value));
				;}
    break;

  case 476:

/* Line 1455 of yacc.c  */
#line 3128 "gram.y"
    {
					(yyval.defelt) = makeDefElem("maxvalue", NULL);
				;}
    break;

  case 477:

/* Line 1455 of yacc.c  */
#line 3132 "gram.y"
    {
					(yyval.defelt) = makeDefElem("minvalue", NULL);
				;}
    break;

  case 478:

/* Line 1455 of yacc.c  */
#line 3136 "gram.y"
    {
					(yyval.defelt) = makeDefElem("owned_by", (Node *)(yyvsp[(3) - (3)].list));
				;}
    break;

  case 479:

/* Line 1455 of yacc.c  */
#line 3140 "gram.y"
    {
					(yyval.defelt) = makeDefElem("start", (Node *)(yyvsp[(3) - (3)].value));
				;}
    break;

  case 480:

/* Line 1455 of yacc.c  */
#line 3144 "gram.y"
    {
					(yyval.defelt) = makeDefElem("restart", NULL);
				;}
    break;

  case 481:

/* Line 1455 of yacc.c  */
#line 3148 "gram.y"
    {
					(yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[(3) - (3)].value));
				;}
    break;

  case 482:

/* Line 1455 of yacc.c  */
#line 3153 "gram.y"
    {;}
    break;

  case 483:

/* Line 1455 of yacc.c  */
#line 3154 "gram.y"
    {;}
    break;

  case 484:

/* Line 1455 of yacc.c  */
#line 3158 "gram.y"
    { (yyval.value) = makeFloat((yyvsp[(1) - (1)].str)); ;}
    break;

  case 485:

/* Line 1455 of yacc.c  */
#line 3160 "gram.y"
    {
					(yyval.value) = makeFloat((yyvsp[(2) - (2)].str));
					doNegateFloat((yyval.value));
				;}
    break;

  case 486:

/* Line 1455 of yacc.c  */
#line 3164 "gram.y"
    { (yyval.value) = makeInteger((yyvsp[(1) - (1)].ival)); ;}
    break;

  case 487:

/* Line 1455 of yacc.c  */
#line 3167 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].value)); ;}
    break;

  case 488:

/* Line 1455 of yacc.c  */
#line 3168 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].value)); ;}
    break;

  case 489:

/* Line 1455 of yacc.c  */
#line 3181 "gram.y"
    {
				CreatePLangStmt *n = makeNode(CreatePLangStmt);
				n->replace = (yyvsp[(2) - (6)].boolean);
				n->plname = (yyvsp[(6) - (6)].str);
				/* parameters are all to be supplied by system */
				n->plhandler = NIL;
				n->plinline = NIL;
				n->plvalidator = NIL;
				n->pltrusted = false;
				(yyval.node) = (Node *)n;
			;}
    break;

  case 490:

/* Line 1455 of yacc.c  */
#line 3194 "gram.y"
    {
				CreatePLangStmt *n = makeNode(CreatePLangStmt);
				n->replace = (yyvsp[(2) - (10)].boolean);
				n->plname = (yyvsp[(6) - (10)].str);
				n->plhandler = (yyvsp[(8) - (10)].list);
				n->plinline = (yyvsp[(9) - (10)].list);
				n->plvalidator = (yyvsp[(10) - (10)].list);
				n->pltrusted = (yyvsp[(3) - (10)].boolean);
				(yyval.node) = (Node *)n;
			;}
    break;

  case 491:

/* Line 1455 of yacc.c  */
#line 3207 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 492:

/* Line 1455 of yacc.c  */
#line 3208 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 493:

/* Line 1455 of yacc.c  */
#line 3216 "gram.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 494:

/* Line 1455 of yacc.c  */
#line 3217 "gram.y"
    { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;}
    break;

  case 495:

/* Line 1455 of yacc.c  */
#line 3221 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 496:

/* Line 1455 of yacc.c  */
#line 3222 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 497:

/* Line 1455 of yacc.c  */
#line 3226 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 498:

/* Line 1455 of yacc.c  */
#line 3227 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 499:

/* Line 1455 of yacc.c  */
#line 3231 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 500:

/* Line 1455 of yacc.c  */
#line 3232 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 501:

/* Line 1455 of yacc.c  */
#line 3237 "gram.y"
    {
					DropPLangStmt *n = makeNode(DropPLangStmt);
					n->plname = (yyvsp[(4) - (5)].str);
					n->behavior = (yyvsp[(5) - (5)].dbehavior);
					n->missing_ok = false;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 502:

/* Line 1455 of yacc.c  */
#line 3245 "gram.y"
    {
					DropPLangStmt *n = makeNode(DropPLangStmt);
					n->plname = (yyvsp[(6) - (7)].str);
					n->behavior = (yyvsp[(7) - (7)].dbehavior);
					n->missing_ok = true;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 503:

/* Line 1455 of yacc.c  */
#line 3255 "gram.y"
    {;}
    break;

  case 504:

/* Line 1455 of yacc.c  */
#line 3256 "gram.y"
    {;}
    break;

  case 505:

/* Line 1455 of yacc.c  */
#line 3267 "gram.y"
    {
					CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt);
					n->tablespacename = (yyvsp[(3) - (6)].str);
					n->owner = (yyvsp[(4) - (6)].str);
					n->location = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 506:

/* Line 1455 of yacc.c  */
#line 3276 "gram.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 507:

/* Line 1455 of yacc.c  */
#line 3277 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 508:

/* Line 1455 of yacc.c  */
#line 3291 "gram.y"
    {
					DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
					n->tablespacename = (yyvsp[(3) - (3)].str);
					n->missing_ok = false;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 509:

/* Line 1455 of yacc.c  */
#line 3298 "gram.y"
    {
					DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
					n->tablespacename = (yyvsp[(5) - (5)].str);
					n->missing_ok = true;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 510:

/* Line 1455 of yacc.c  */
#line 3315 "gram.y"
    {
					CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
					n->extname = (yyvsp[(3) - (5)].str);
					n->if_not_exists = false;
					n->options = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 511:

/* Line 1455 of yacc.c  */
#line 3323 "gram.y"
    {
					CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
					n->extname = (yyvsp[(6) - (8)].str);
					n->if_not_exists = true;
					n->options = (yyvsp[(8) - (8)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 512:

/* Line 1455 of yacc.c  */
#line 3334 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 513:

/* Line 1455 of yacc.c  */
#line 3336 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 514:

/* Line 1455 of yacc.c  */
#line 3341 "gram.y"
    {
					(yyval.defelt) = makeDefElem("schema", (Node *)makeString((yyvsp[(2) - (2)].str)));
				;}
    break;

  case 515:

/* Line 1455 of yacc.c  */
#line 3345 "gram.y"
    {
					(yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[(2) - (2)].str)));
				;}
    break;

  case 516:

/* Line 1455 of yacc.c  */
#line 3349 "gram.y"
    {
					(yyval.defelt) = makeDefElem("old_version", (Node *)makeString((yyvsp[(2) - (2)].str)));
				;}
    break;

  case 517:

/* Line 1455 of yacc.c  */
#line 3361 "gram.y"
    {
					AlterExtensionStmt *n = makeNode(AlterExtensionStmt);
					n->extname = (yyvsp[(3) - (5)].str);
					n->options = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 518:

/* Line 1455 of yacc.c  */
#line 3371 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 519:

/* Line 1455 of yacc.c  */
#line 3373 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 520:

/* Line 1455 of yacc.c  */
#line 3378 "gram.y"
    {
					(yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[(2) - (2)].str)));
				;}
    break;

  case 521:

/* Line 1455 of yacc.c  */
#line 3391 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (7)].str);
					n->action = (yyvsp[(4) - (7)].ival);
					n->objtype = OBJECT_AGGREGATE;
					n->objname = (yyvsp[(6) - (7)].list);
					n->objargs = (yyvsp[(7) - (7)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 522:

/* Line 1455 of yacc.c  */
#line 3401 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (10)].str);
					n->action = (yyvsp[(4) - (10)].ival);
					n->objtype = OBJECT_CAST;
					n->objname = list_make1((yyvsp[(7) - (10)].typnam));
					n->objargs = list_make1((yyvsp[(9) - (10)].typnam));
					(yyval.node) = (Node *) n;
				;}
    break;

  case 523:

/* Line 1455 of yacc.c  */
#line 3411 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (6)].str);
					n->action = (yyvsp[(4) - (6)].ival);
					n->objtype = OBJECT_COLLATION;
					n->objname = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 524:

/* Line 1455 of yacc.c  */
#line 3420 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (6)].str);
					n->action = (yyvsp[(4) - (6)].ival);
					n->objtype = OBJECT_CONVERSION;
					n->objname = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 525:

/* Line 1455 of yacc.c  */
#line 3429 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (6)].str);
					n->action = (yyvsp[(4) - (6)].ival);
					n->objtype = OBJECT_DOMAIN;
					n->objname = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 526:

/* Line 1455 of yacc.c  */
#line 3438 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (6)].str);
					n->action = (yyvsp[(4) - (6)].ival);
					n->objtype = OBJECT_FUNCTION;
					n->objname = (yyvsp[(6) - (6)].funwithargs)->funcname;
					n->objargs = (yyvsp[(6) - (6)].funwithargs)->funcargs;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 527:

/* Line 1455 of yacc.c  */
#line 3448 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (7)].str);
					n->action = (yyvsp[(4) - (7)].ival);
					n->objtype = OBJECT_LANGUAGE;
					n->objname = list_make1(makeString((yyvsp[(7) - (7)].str)));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 528:

/* Line 1455 of yacc.c  */
#line 3457 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (7)].str);
					n->action = (yyvsp[(4) - (7)].ival);
					n->objtype = OBJECT_OPERATOR;
					n->objname = (yyvsp[(6) - (7)].list);
					n->objargs = (yyvsp[(7) - (7)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 529:

/* Line 1455 of yacc.c  */
#line 3467 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (9)].str);
					n->action = (yyvsp[(4) - (9)].ival);
					n->objtype = OBJECT_OPCLASS;
					n->objname = (yyvsp[(7) - (9)].list);
					n->objargs = list_make1(makeString((yyvsp[(9) - (9)].str)));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 530:

/* Line 1455 of yacc.c  */
#line 3477 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (9)].str);
					n->action = (yyvsp[(4) - (9)].ival);
					n->objtype = OBJECT_OPFAMILY;
					n->objname = (yyvsp[(7) - (9)].list);
					n->objargs = list_make1(makeString((yyvsp[(9) - (9)].str)));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 531:

/* Line 1455 of yacc.c  */
#line 3487 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (6)].str);
					n->action = (yyvsp[(4) - (6)].ival);
					n->objtype = OBJECT_SCHEMA;
					n->objname = list_make1(makeString((yyvsp[(6) - (6)].str)));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 532:

/* Line 1455 of yacc.c  */
#line 3496 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (6)].str);
					n->action = (yyvsp[(4) - (6)].ival);
					n->objtype = OBJECT_TABLE;
					n->objname = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 533:

/* Line 1455 of yacc.c  */
#line 3505 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (8)].str);
					n->action = (yyvsp[(4) - (8)].ival);
					n->objtype = OBJECT_TSPARSER;
					n->objname = (yyvsp[(8) - (8)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 534:

/* Line 1455 of yacc.c  */
#line 3514 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (8)].str);
					n->action = (yyvsp[(4) - (8)].ival);
					n->objtype = OBJECT_TSDICTIONARY;
					n->objname = (yyvsp[(8) - (8)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 535:

/* Line 1455 of yacc.c  */
#line 3523 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (8)].str);
					n->action = (yyvsp[(4) - (8)].ival);
					n->objtype = OBJECT_TSTEMPLATE;
					n->objname = (yyvsp[(8) - (8)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 536:

/* Line 1455 of yacc.c  */
#line 3532 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (8)].str);
					n->action = (yyvsp[(4) - (8)].ival);
					n->objtype = OBJECT_TSCONFIGURATION;
					n->objname = (yyvsp[(8) - (8)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 537:

/* Line 1455 of yacc.c  */
#line 3541 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (6)].str);
					n->action = (yyvsp[(4) - (6)].ival);
					n->objtype = OBJECT_SEQUENCE;
					n->objname = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 538:

/* Line 1455 of yacc.c  */
#line 3550 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (6)].str);
					n->action = (yyvsp[(4) - (6)].ival);
					n->objtype = OBJECT_VIEW;
					n->objname = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 539:

/* Line 1455 of yacc.c  */
#line 3559 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (7)].str);
					n->action = (yyvsp[(4) - (7)].ival);
					n->objtype = OBJECT_FOREIGN_TABLE;
					n->objname = (yyvsp[(7) - (7)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 540:

/* Line 1455 of yacc.c  */
#line 3568 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (8)].str);
					n->action = (yyvsp[(4) - (8)].ival);
					n->objtype = OBJECT_FDW;
					n->objname = list_make1(makeString((yyvsp[(8) - (8)].str)));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 541:

/* Line 1455 of yacc.c  */
#line 3577 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (6)].str);
					n->action = (yyvsp[(4) - (6)].ival);
					n->objtype = OBJECT_FOREIGN_SERVER;
					n->objname = list_make1(makeString((yyvsp[(6) - (6)].str)));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 542:

/* Line 1455 of yacc.c  */
#line 3586 "gram.y"
    {
					AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
					n->extname = (yyvsp[(3) - (6)].str);
					n->action = (yyvsp[(4) - (6)].ival);
					n->objtype = OBJECT_TYPE;
					n->objname = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 543:

/* Line 1455 of yacc.c  */
#line 3604 "gram.y"
    {
					CreateFdwStmt *n = makeNode(CreateFdwStmt);
					n->fdwname = (yyvsp[(5) - (7)].str);
					n->func_options = (yyvsp[(6) - (7)].list);
					n->options = (yyvsp[(7) - (7)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 544:

/* Line 1455 of yacc.c  */
#line 3614 "gram.y"
    { (yyval.defelt) = makeDefElem("handler", (Node *)(yyvsp[(2) - (2)].list)); ;}
    break;

  case 545:

/* Line 1455 of yacc.c  */
#line 3615 "gram.y"
    { (yyval.defelt) = makeDefElem("handler", NULL); ;}
    break;

  case 546:

/* Line 1455 of yacc.c  */
#line 3616 "gram.y"
    { (yyval.defelt) = makeDefElem("validator", (Node *)(yyvsp[(2) - (2)].list)); ;}
    break;

  case 547:

/* Line 1455 of yacc.c  */
#line 3617 "gram.y"
    { (yyval.defelt) = makeDefElem("validator", NULL); ;}
    break;

  case 548:

/* Line 1455 of yacc.c  */
#line 3621 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 549:

/* Line 1455 of yacc.c  */
#line 3622 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 550:

/* Line 1455 of yacc.c  */
#line 3626 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 551:

/* Line 1455 of yacc.c  */
#line 3627 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 552:

/* Line 1455 of yacc.c  */
#line 3638 "gram.y"
    {
					DropFdwStmt *n = makeNode(DropFdwStmt);
					n->fdwname = (yyvsp[(5) - (6)].str);
					n->missing_ok = false;
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 553:

/* Line 1455 of yacc.c  */
#line 3646 "gram.y"
    {
					DropFdwStmt *n = makeNode(DropFdwStmt);
					n->fdwname = (yyvsp[(7) - (8)].str);
					n->missing_ok = true;
					n->behavior = (yyvsp[(8) - (8)].dbehavior);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 554:

/* Line 1455 of yacc.c  */
#line 3663 "gram.y"
    {
					AlterFdwStmt *n = makeNode(AlterFdwStmt);
					n->fdwname = (yyvsp[(5) - (7)].str);
					n->func_options = (yyvsp[(6) - (7)].list);
					n->options = (yyvsp[(7) - (7)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 555:

/* Line 1455 of yacc.c  */
#line 3671 "gram.y"
    {
					AlterFdwStmt *n = makeNode(AlterFdwStmt);
					n->fdwname = (yyvsp[(5) - (6)].str);
					n->func_options = (yyvsp[(6) - (6)].list);
					n->options = NIL;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 556:

/* Line 1455 of yacc.c  */
#line 3682 "gram.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 557:

/* Line 1455 of yacc.c  */
#line 3683 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 558:

/* Line 1455 of yacc.c  */
#line 3688 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
				;}
    break;

  case 559:

/* Line 1455 of yacc.c  */
#line 3692 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
				;}
    break;

  case 560:

/* Line 1455 of yacc.c  */
#line 3699 "gram.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 561:

/* Line 1455 of yacc.c  */
#line 3704 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
				;}
    break;

  case 562:

/* Line 1455 of yacc.c  */
#line 3708 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
				;}
    break;

  case 563:

/* Line 1455 of yacc.c  */
#line 3715 "gram.y"
    {
					(yyval.defelt) = (yyvsp[(1) - (1)].defelt);
				;}
    break;

  case 564:

/* Line 1455 of yacc.c  */
#line 3719 "gram.y"
    {
					(yyval.defelt) = (yyvsp[(2) - (2)].defelt);
					(yyval.defelt)->defaction = DEFELEM_SET;
				;}
    break;

  case 565:

/* Line 1455 of yacc.c  */
#line 3724 "gram.y"
    {
					(yyval.defelt) = (yyvsp[(2) - (2)].defelt);
					(yyval.defelt)->defaction = DEFELEM_ADD;
				;}
    break;

  case 566:

/* Line 1455 of yacc.c  */
#line 3729 "gram.y"
    {
					(yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP);
				;}
    break;

  case 567:

/* Line 1455 of yacc.c  */
#line 3736 "gram.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node));
				;}
    break;

  case 568:

/* Line 1455 of yacc.c  */
#line 3742 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 569:

/* Line 1455 of yacc.c  */
#line 3747 "gram.y"
    { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 570:

/* Line 1455 of yacc.c  */
#line 3759 "gram.y"
    {
					CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt);
					n->servername = (yyvsp[(3) - (10)].str);
					n->servertype = (yyvsp[(4) - (10)].str);
					n->version = (yyvsp[(5) - (10)].str);
					n->fdwname = (yyvsp[(9) - (10)].str);
					n->options = (yyvsp[(10) - (10)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 571:

/* Line 1455 of yacc.c  */
#line 3771 "gram.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 572:

/* Line 1455 of yacc.c  */
#line 3772 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 573:

/* Line 1455 of yacc.c  */
#line 3777 "gram.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 574:

/* Line 1455 of yacc.c  */
#line 3778 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 575:

/* Line 1455 of yacc.c  */
#line 3782 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 576:

/* Line 1455 of yacc.c  */
#line 3783 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 577:

/* Line 1455 of yacc.c  */
#line 3794 "gram.y"
    {
					DropForeignServerStmt *n = makeNode(DropForeignServerStmt);
					n->servername = (yyvsp[(3) - (4)].str);
					n->missing_ok = false;
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 578:

/* Line 1455 of yacc.c  */
#line 3802 "gram.y"
    {
					DropForeignServerStmt *n = makeNode(DropForeignServerStmt);
					n->servername = (yyvsp[(5) - (6)].str);
					n->missing_ok = true;
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 579:

/* Line 1455 of yacc.c  */
#line 3819 "gram.y"
    {
					AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
					n->servername = (yyvsp[(3) - (5)].str);
					n->version = (yyvsp[(4) - (5)].str);
					n->options = (yyvsp[(5) - (5)].list);
					n->has_version = true;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 580:

/* Line 1455 of yacc.c  */
#line 3828 "gram.y"
    {
					AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
					n->servername = (yyvsp[(3) - (4)].str);
					n->version = (yyvsp[(4) - (4)].str);
					n->has_version = true;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 581:

/* Line 1455 of yacc.c  */
#line 3836 "gram.y"
    {
					AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
					n->servername = (yyvsp[(3) - (4)].str);
					n->options = (yyvsp[(4) - (4)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 582:

/* Line 1455 of yacc.c  */
#line 3855 "gram.y"
    {
					CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
					(yyvsp[(4) - (8)].range)->relpersistence = RELPERSISTENCE_PERMANENT;
					n->base.relation = (yyvsp[(4) - (8)].range);
					n->base.tableElts = (yyvsp[(5) - (8)].list);
					n->base.inhRelations = NIL;
					n->base.if_not_exists = false;
					/* FDW-specific data */
					n->servername = (yyvsp[(7) - (8)].str);
					n->options = (yyvsp[(8) - (8)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 583:

/* Line 1455 of yacc.c  */
#line 3870 "gram.y"
    {
					CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
					(yyvsp[(7) - (11)].range)->relpersistence = RELPERSISTENCE_PERMANENT;
					n->base.relation = (yyvsp[(7) - (11)].range);
					n->base.tableElts = (yyvsp[(8) - (11)].list);
					n->base.inhRelations = NIL;
					n->base.if_not_exists = true;
					/* FDW-specific data */
					n->servername = (yyvsp[(10) - (11)].str);
					n->options = (yyvsp[(11) - (11)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 584:

/* Line 1455 of yacc.c  */
#line 3885 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 585:

/* Line 1455 of yacc.c  */
#line 3886 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 586:

/* Line 1455 of yacc.c  */
#line 3891 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 587:

/* Line 1455 of yacc.c  */
#line 3895 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 588:

/* Line 1455 of yacc.c  */
#line 3901 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 589:

/* Line 1455 of yacc.c  */
#line 3913 "gram.y"
    {
					AlterTableStmt *n = makeNode(AlterTableStmt);
					n->relation = (yyvsp[(4) - (5)].range);
					n->cmds = (yyvsp[(5) - (5)].list);
					n->relkind = OBJECT_FOREIGN_TABLE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 590:

/* Line 1455 of yacc.c  */
#line 3930 "gram.y"
    {
					CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt);
					n->username = (yyvsp[(5) - (8)].str);
					n->servername = (yyvsp[(7) - (8)].str);
					n->options = (yyvsp[(8) - (8)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 591:

/* Line 1455 of yacc.c  */
#line 3941 "gram.y"
    { (yyval.str) = "current_user"; ;}
    break;

  case 592:

/* Line 1455 of yacc.c  */
#line 3942 "gram.y"
    { (yyval.str) = "current_user"; ;}
    break;

  case 593:

/* Line 1455 of yacc.c  */
#line 3943 "gram.y"
    { (yyval.str) = (strcmp((yyvsp[(1) - (1)].str), "public") == 0) ? NULL : (yyvsp[(1) - (1)].str); ;}
    break;

  case 594:

/* Line 1455 of yacc.c  */
#line 3954 "gram.y"
    {
					DropUserMappingStmt *n = makeNode(DropUserMappingStmt);
					n->username = (yyvsp[(5) - (7)].str);
					n->servername = (yyvsp[(7) - (7)].str);
					n->missing_ok = false;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 595:

/* Line 1455 of yacc.c  */
#line 3962 "gram.y"
    {
					DropUserMappingStmt *n = makeNode(DropUserMappingStmt);
					n->username = (yyvsp[(7) - (9)].str);
					n->servername = (yyvsp[(9) - (9)].str);
					n->missing_ok = true;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 596:

/* Line 1455 of yacc.c  */
#line 3979 "gram.y"
    {
					AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt);
					n->username = (yyvsp[(5) - (8)].str);
					n->servername = (yyvsp[(7) - (8)].str);
					n->options = (yyvsp[(8) - (8)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 597:

/* Line 1455 of yacc.c  */
#line 4000 "gram.y"
    {
					CreateTrigStmt *n = makeNode(CreateTrigStmt);
					n->trigname = (yyvsp[(3) - (15)].str);
					n->relation = (yyvsp[(7) - (15)].range);
					n->funcname = (yyvsp[(12) - (15)].list);
					n->args = (yyvsp[(14) - (15)].list);
					n->row = (yyvsp[(8) - (15)].boolean);
					n->timing = (yyvsp[(4) - (15)].ival);
					n->events = intVal(linitial((yyvsp[(5) - (15)].list)));
					n->columns = (List *) lsecond((yyvsp[(5) - (15)].list));
					n->whenClause = (yyvsp[(9) - (15)].node);
					n->isconstraint  = FALSE;
					n->deferrable	 = FALSE;
					n->initdeferred  = FALSE;
					n->constrrel = NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 598:

/* Line 1455 of yacc.c  */
#line 4021 "gram.y"
    {
					CreateTrigStmt *n = makeNode(CreateTrigStmt);
					n->trigname = (yyvsp[(4) - (20)].str);
					n->relation = (yyvsp[(8) - (20)].range);
					n->funcname = (yyvsp[(17) - (20)].list);
					n->args = (yyvsp[(19) - (20)].list);
					n->row = TRUE;
					n->timing = TRIGGER_TYPE_AFTER;
					n->events = intVal(linitial((yyvsp[(6) - (20)].list)));
					n->columns = (List *) lsecond((yyvsp[(6) - (20)].list));
					n->whenClause = (yyvsp[(14) - (20)].node);
					n->isconstraint  = TRUE;
					processCASbits((yyvsp[(10) - (20)].ival), (yylsp[(10) - (20)]), "TRIGGER",
								   &n->deferrable, &n->initdeferred, NULL,
								   yyscanner);
					n->constrrel = (yyvsp[(9) - (20)].range);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 599:

/* Line 1455 of yacc.c  */
#line 4042 "gram.y"
    { (yyval.ival) = TRIGGER_TYPE_BEFORE; ;}
    break;

  case 600:

/* Line 1455 of yacc.c  */
#line 4043 "gram.y"
    { (yyval.ival) = TRIGGER_TYPE_AFTER; ;}
    break;

  case 601:

/* Line 1455 of yacc.c  */
#line 4044 "gram.y"
    { (yyval.ival) = TRIGGER_TYPE_INSTEAD; ;}
    break;

  case 602:

/* Line 1455 of yacc.c  */
#line 4049 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 603:

/* Line 1455 of yacc.c  */
#line 4051 "gram.y"
    {
					int		events1 = intVal(linitial((yyvsp[(1) - (3)].list)));
					int		events2 = intVal(linitial((yyvsp[(3) - (3)].list)));
					List   *columns1 = (List *) lsecond((yyvsp[(1) - (3)].list));
					List   *columns2 = (List *) lsecond((yyvsp[(3) - (3)].list));

					if (events1 & events2)
						parser_yyerror("duplicate trigger events specified");
					/*
					 * concat'ing the columns lists loses information about
					 * which columns went with which event, but so long as
					 * only UPDATE carries columns and we disallow multiple
					 * UPDATE items, it doesn't matter.  Command execution
					 * should just ignore the columns for non-UPDATE events.
					 */
					(yyval.list) = list_make2(makeInteger(events1 | events2),
									list_concat(columns1, columns2));
				;}
    break;

  case 604:

/* Line 1455 of yacc.c  */
#line 4073 "gram.y"
    { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); ;}
    break;

  case 605:

/* Line 1455 of yacc.c  */
#line 4075 "gram.y"
    { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); ;}
    break;

  case 606:

/* Line 1455 of yacc.c  */
#line 4077 "gram.y"
    { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); ;}
    break;

  case 607:

/* Line 1455 of yacc.c  */
#line 4079 "gram.y"
    { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 608:

/* Line 1455 of yacc.c  */
#line 4081 "gram.y"
    { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); ;}
    break;

  case 609:

/* Line 1455 of yacc.c  */
#line 4086 "gram.y"
    {
					(yyval.boolean) = (yyvsp[(3) - (3)].boolean);
				;}
    break;

  case 610:

/* Line 1455 of yacc.c  */
#line 4090 "gram.y"
    {
					/*
					 * If ROW/STATEMENT not specified, default to
					 * STATEMENT, per SQL
					 */
					(yyval.boolean) = FALSE;
				;}
    break;

  case 611:

/* Line 1455 of yacc.c  */
#line 4100 "gram.y"
    {;}
    break;

  case 612:

/* Line 1455 of yacc.c  */
#line 4101 "gram.y"
    {;}
    break;

  case 613:

/* Line 1455 of yacc.c  */
#line 4105 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 614:

/* Line 1455 of yacc.c  */
#line 4106 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 615:

/* Line 1455 of yacc.c  */
#line 4110 "gram.y"
    { (yyval.node) = (yyvsp[(3) - (4)].node); ;}
    break;

  case 616:

/* Line 1455 of yacc.c  */
#line 4111 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 617:

/* Line 1455 of yacc.c  */
#line 4115 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].value)); ;}
    break;

  case 618:

/* Line 1455 of yacc.c  */
#line 4116 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].value)); ;}
    break;

  case 619:

/* Line 1455 of yacc.c  */
#line 4117 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 620:

/* Line 1455 of yacc.c  */
#line 4122 "gram.y"
    {
					char buf[64];
					snprintf(buf, sizeof(buf), "%d", (yyvsp[(1) - (1)].ival));
					(yyval.value) = makeString(pstrdup(buf));
				;}
    break;

  case 621:

/* Line 1455 of yacc.c  */
#line 4127 "gram.y"
    { (yyval.value) = makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 622:

/* Line 1455 of yacc.c  */
#line 4128 "gram.y"
    { (yyval.value) = makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 623:

/* Line 1455 of yacc.c  */
#line 4129 "gram.y"
    { (yyval.value) = makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 624:

/* Line 1455 of yacc.c  */
#line 4133 "gram.y"
    { (yyval.range) = (yyvsp[(2) - (2)].range); ;}
    break;

  case 625:

/* Line 1455 of yacc.c  */
#line 4134 "gram.y"
    { (yyval.range) = NULL; ;}
    break;

  case 626:

/* Line 1455 of yacc.c  */
#line 4139 "gram.y"
    { (yyval.ival) = 0; ;}
    break;

  case 627:

/* Line 1455 of yacc.c  */
#line 4141 "gram.y"
    {
					/*
					 * We must complain about conflicting options.
					 * We could, but choose not to, complain about redundant
					 * options (ie, where $2's bit is already set in $1).
					 */
					int		newspec = (yyvsp[(1) - (2)].ival) | (yyvsp[(2) - (2)].ival);

					/* special message for this case */
					if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED))
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"),
								 parser_errposition((yylsp[(2) - (2)]))));
					/* generic message for other conflicts */
					if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) ||
						(newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED))
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("conflicting constraint properties"),
								 parser_errposition((yylsp[(2) - (2)]))));
					(yyval.ival) = newspec;
				;}
    break;

  case 628:

/* Line 1455 of yacc.c  */
#line 4167 "gram.y"
    { (yyval.ival) = CAS_NOT_DEFERRABLE; ;}
    break;

  case 629:

/* Line 1455 of yacc.c  */
#line 4168 "gram.y"
    { (yyval.ival) = CAS_DEFERRABLE; ;}
    break;

  case 630:

/* Line 1455 of yacc.c  */
#line 4169 "gram.y"
    { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;}
    break;

  case 631:

/* Line 1455 of yacc.c  */
#line 4170 "gram.y"
    { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;}
    break;

  case 632:

/* Line 1455 of yacc.c  */
#line 4171 "gram.y"
    { (yyval.ival) = CAS_NOT_VALID; ;}
    break;

  case 633:

/* Line 1455 of yacc.c  */
#line 4177 "gram.y"
    {
					DropPropertyStmt *n = makeNode(DropPropertyStmt);
					n->relation = (yyvsp[(5) - (6)].range);
					n->property = (yyvsp[(3) - (6)].str);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->removeType = OBJECT_TRIGGER;
					n->missing_ok = false;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 634:

/* Line 1455 of yacc.c  */
#line 4187 "gram.y"
    {
					DropPropertyStmt *n = makeNode(DropPropertyStmt);
					n->relation = (yyvsp[(7) - (8)].range);
					n->property = (yyvsp[(5) - (8)].str);
					n->behavior = (yyvsp[(8) - (8)].dbehavior);
					n->removeType = OBJECT_TRIGGER;
					n->missing_ok = true;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 635:

/* Line 1455 of yacc.c  */
#line 4210 "gram.y"
    {
					CreateTrigStmt *n = makeNode(CreateTrigStmt);
					n->trigname = (yyvsp[(3) - (8)].str);
					n->args = list_make1((yyvsp[(6) - (8)].node));
					n->isconstraint  = TRUE;
					processCASbits((yyvsp[(8) - (8)].ival), (yylsp[(8) - (8)]), "ASSERTION",
								   &n->deferrable, &n->initdeferred, NULL,
								   yyscanner);

					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("CREATE ASSERTION is not yet implemented")));

					(yyval.node) = (Node *)n;
				;}
    break;

  case 636:

/* Line 1455 of yacc.c  */
#line 4229 "gram.y"
    {
					DropPropertyStmt *n = makeNode(DropPropertyStmt);
					n->relation = NULL;
					n->property = (yyvsp[(3) - (4)].str);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->removeType = OBJECT_TRIGGER; /* XXX */
					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("DROP ASSERTION is not yet implemented")));
					(yyval.node) = (Node *) n;
				;}
    break;

  case 637:

/* Line 1455 of yacc.c  */
#line 4252 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_AGGREGATE;
					n->oldstyle = false;
					n->defnames = (yyvsp[(3) - (5)].list);
					n->args = (yyvsp[(4) - (5)].list);
					n->definition = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 638:

/* Line 1455 of yacc.c  */
#line 4262 "gram.y"
    {
					/* old-style (pre-8.2) syntax for CREATE AGGREGATE */
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_AGGREGATE;
					n->oldstyle = true;
					n->defnames = (yyvsp[(3) - (4)].list);
					n->args = NIL;
					n->definition = (yyvsp[(4) - (4)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 639:

/* Line 1455 of yacc.c  */
#line 4273 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_OPERATOR;
					n->oldstyle = false;
					n->defnames = (yyvsp[(3) - (4)].list);
					n->args = NIL;
					n->definition = (yyvsp[(4) - (4)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 640:

/* Line 1455 of yacc.c  */
#line 4283 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_TYPE;
					n->oldstyle = false;
					n->defnames = (yyvsp[(3) - (4)].list);
					n->args = NIL;
					n->definition = (yyvsp[(4) - (4)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 641:

/* Line 1455 of yacc.c  */
#line 4293 "gram.y"
    {
					/* Shell type (identified by lack of definition) */
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_TYPE;
					n->oldstyle = false;
					n->defnames = (yyvsp[(3) - (3)].list);
					n->args = NIL;
					n->definition = NIL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 642:

/* Line 1455 of yacc.c  */
#line 4304 "gram.y"
    {
					CompositeTypeStmt *n = makeNode(CompositeTypeStmt);

					/* can't use qualified_name, sigh */
					n->typevar = makeRangeVarFromAnyName((yyvsp[(3) - (7)].list), (yylsp[(3) - (7)]), yyscanner);
					n->coldeflist = (yyvsp[(6) - (7)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 643:

/* Line 1455 of yacc.c  */
#line 4313 "gram.y"
    {
					CreateEnumStmt *n = makeNode(CreateEnumStmt);
					n->typeName = (yyvsp[(3) - (8)].list);
					n->vals = (yyvsp[(7) - (8)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 644:

/* Line 1455 of yacc.c  */
#line 4320 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_TSPARSER;
					n->args = NIL;
					n->defnames = (yyvsp[(5) - (6)].list);
					n->definition = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 645:

/* Line 1455 of yacc.c  */
#line 4329 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_TSDICTIONARY;
					n->args = NIL;
					n->defnames = (yyvsp[(5) - (6)].list);
					n->definition = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 646:

/* Line 1455 of yacc.c  */
#line 4338 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_TSTEMPLATE;
					n->args = NIL;
					n->defnames = (yyvsp[(5) - (6)].list);
					n->definition = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 647:

/* Line 1455 of yacc.c  */
#line 4347 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_TSCONFIGURATION;
					n->args = NIL;
					n->defnames = (yyvsp[(5) - (6)].list);
					n->definition = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 648:

/* Line 1455 of yacc.c  */
#line 4356 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_COLLATION;
					n->args = NIL;
					n->defnames = (yyvsp[(3) - (4)].list);
					n->definition = (yyvsp[(4) - (4)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 649:

/* Line 1455 of yacc.c  */
#line 4365 "gram.y"
    {
					DefineStmt *n = makeNode(DefineStmt);
					n->kind = OBJECT_COLLATION;
					n->args = NIL;
					n->defnames = (yyvsp[(3) - (5)].list);
					n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[(5) - (5)].list)));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 650:

/* Line 1455 of yacc.c  */
#line 4375 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 651:

/* Line 1455 of yacc.c  */
#line 4378 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 652:

/* Line 1455 of yacc.c  */
#line 4379 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;}
    break;

  case 653:

/* Line 1455 of yacc.c  */
#line 4383 "gram.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node));
				;}
    break;

  case 654:

/* Line 1455 of yacc.c  */
#line 4387 "gram.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL);
				;}
    break;

  case 655:

/* Line 1455 of yacc.c  */
#line 4393 "gram.y"
    { (yyval.node) = (Node *)(yyvsp[(1) - (1)].typnam); ;}
    break;

  case 656:

/* Line 1455 of yacc.c  */
#line 4394 "gram.y"
    { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;}
    break;

  case 657:

/* Line 1455 of yacc.c  */
#line 4395 "gram.y"
    { (yyval.node) = (Node *)(yyvsp[(1) - (1)].list); ;}
    break;

  case 658:

/* Line 1455 of yacc.c  */
#line 4396 "gram.y"
    { (yyval.node) = (Node *)(yyvsp[(1) - (1)].value); ;}
    break;

  case 659:

/* Line 1455 of yacc.c  */
#line 4397 "gram.y"
    { (yyval.node) = (Node *)makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 660:

/* Line 1455 of yacc.c  */
#line 4400 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 661:

/* Line 1455 of yacc.c  */
#line 4401 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 662:

/* Line 1455 of yacc.c  */
#line 4404 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 663:

/* Line 1455 of yacc.c  */
#line 4407 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 664:

/* Line 1455 of yacc.c  */
#line 4408 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;}
    break;

  case 665:

/* Line 1455 of yacc.c  */
#line 4417 "gram.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *)(yyvsp[(3) - (3)].node));
				;}
    break;

  case 666:

/* Line 1455 of yacc.c  */
#line 4423 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 667:

/* Line 1455 of yacc.c  */
#line 4424 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 668:

/* Line 1455 of yacc.c  */
#line 4428 "gram.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 669:

/* Line 1455 of yacc.c  */
#line 4430 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;}
    break;

  case 670:

/* Line 1455 of yacc.c  */
#line 4441 "gram.y"
    {
				 AlterEnumStmt *n = makeNode(AlterEnumStmt);
				 n->typeName = (yyvsp[(3) - (6)].list);
				 n->newVal = (yyvsp[(6) - (6)].str);
				 n->newValNeighbor = NULL;
				 n->newValIsAfter = true;
				 (yyval.node) = (Node *) n;
			 ;}
    break;

  case 671:

/* Line 1455 of yacc.c  */
#line 4450 "gram.y"
    {
				 AlterEnumStmt *n = makeNode(AlterEnumStmt);
				 n->typeName = (yyvsp[(3) - (8)].list);
				 n->newVal = (yyvsp[(6) - (8)].str);
				 n->newValNeighbor = (yyvsp[(8) - (8)].str);
				 n->newValIsAfter = false;
				 (yyval.node) = (Node *) n;
			 ;}
    break;

  case 672:

/* Line 1455 of yacc.c  */
#line 4459 "gram.y"
    {
				 AlterEnumStmt *n = makeNode(AlterEnumStmt);
				 n->typeName = (yyvsp[(3) - (8)].list);
				 n->newVal = (yyvsp[(6) - (8)].str);
				 n->newValNeighbor = (yyvsp[(8) - (8)].str);
				 n->newValIsAfter = true;
				 (yyval.node) = (Node *) n;
			 ;}
    break;

  case 673:

/* Line 1455 of yacc.c  */
#line 4484 "gram.y"
    {
					CreateOpClassStmt *n = makeNode(CreateOpClassStmt);
					n->opclassname = (yyvsp[(4) - (13)].list);
					n->isDefault = (yyvsp[(5) - (13)].boolean);
					n->datatype = (yyvsp[(8) - (13)].typnam);
					n->amname = (yyvsp[(10) - (13)].str);
					n->opfamilyname = (yyvsp[(11) - (13)].list);
					n->items = (yyvsp[(13) - (13)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 674:

/* Line 1455 of yacc.c  */
#line 4497 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 675:

/* Line 1455 of yacc.c  */
#line 4498 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 676:

/* Line 1455 of yacc.c  */
#line 4503 "gram.y"
    {
					CreateOpClassItem *n = makeNode(CreateOpClassItem);
					n->itemtype = OPCLASS_ITEM_OPERATOR;
					n->name = (yyvsp[(3) - (5)].list);
					n->args = NIL;
					n->number = (yyvsp[(2) - (5)].ival);
					n->order_family = (yyvsp[(4) - (5)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 677:

/* Line 1455 of yacc.c  */
#line 4514 "gram.y"
    {
					CreateOpClassItem *n = makeNode(CreateOpClassItem);
					n->itemtype = OPCLASS_ITEM_OPERATOR;
					n->name = (yyvsp[(3) - (6)].list);
					n->args = (yyvsp[(4) - (6)].list);
					n->number = (yyvsp[(2) - (6)].ival);
					n->order_family = (yyvsp[(5) - (6)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 678:

/* Line 1455 of yacc.c  */
#line 4524 "gram.y"
    {
					CreateOpClassItem *n = makeNode(CreateOpClassItem);
					n->itemtype = OPCLASS_ITEM_FUNCTION;
					n->name = (yyvsp[(3) - (4)].list);
					n->args = extractArgTypes((yyvsp[(4) - (4)].list));
					n->number = (yyvsp[(2) - (4)].ival);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 679:

/* Line 1455 of yacc.c  */
#line 4533 "gram.y"
    {
					CreateOpClassItem *n = makeNode(CreateOpClassItem);
					n->itemtype = OPCLASS_ITEM_FUNCTION;
					n->name = (yyvsp[(6) - (7)].list);
					n->args = extractArgTypes((yyvsp[(7) - (7)].list));
					n->number = (yyvsp[(2) - (7)].ival);
					n->class_args = (yyvsp[(4) - (7)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 680:

/* Line 1455 of yacc.c  */
#line 4543 "gram.y"
    {
					CreateOpClassItem *n = makeNode(CreateOpClassItem);
					n->itemtype = OPCLASS_ITEM_STORAGETYPE;
					n->storedtype = (yyvsp[(2) - (2)].typnam);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 681:

/* Line 1455 of yacc.c  */
#line 4551 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 682:

/* Line 1455 of yacc.c  */
#line 4552 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 683:

/* Line 1455 of yacc.c  */
#line 4555 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 684:

/* Line 1455 of yacc.c  */
#line 4556 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 685:

/* Line 1455 of yacc.c  */
#line 4559 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 686:

/* Line 1455 of yacc.c  */
#line 4560 "gram.y"
    { (yyval.list) = (yyvsp[(4) - (4)].list); ;}
    break;

  case 687:

/* Line 1455 of yacc.c  */
#line 4561 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 688:

/* Line 1455 of yacc.c  */
#line 4565 "gram.y"
    {
					/*
					 * RECHECK no longer does anything in opclass definitions,
					 * but we still accept it to ease porting of old database
					 * dumps.
					 */
					ereport(NOTICE,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("RECHECK is no longer required"),
							 errhint("Update your data type."),
							 parser_errposition((yylsp[(1) - (1)]))));
					(yyval.boolean) = TRUE;
				;}
    break;

  case 689:

/* Line 1455 of yacc.c  */
#line 4578 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 690:

/* Line 1455 of yacc.c  */
#line 4584 "gram.y"
    {
					CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt);
					n->opfamilyname = (yyvsp[(4) - (6)].list);
					n->amname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 691:

/* Line 1455 of yacc.c  */
#line 4594 "gram.y"
    {
					AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt);
					n->opfamilyname = (yyvsp[(4) - (8)].list);
					n->amname = (yyvsp[(6) - (8)].str);
					n->isDrop = false;
					n->items = (yyvsp[(8) - (8)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 692:

/* Line 1455 of yacc.c  */
#line 4603 "gram.y"
    {
					AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt);
					n->opfamilyname = (yyvsp[(4) - (8)].list);
					n->amname = (yyvsp[(6) - (8)].str);
					n->isDrop = true;
					n->items = (yyvsp[(8) - (8)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 693:

/* Line 1455 of yacc.c  */
#line 4614 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 694:

/* Line 1455 of yacc.c  */
#line 4615 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 695:

/* Line 1455 of yacc.c  */
#line 4620 "gram.y"
    {
					CreateOpClassItem *n = makeNode(CreateOpClassItem);
					n->itemtype = OPCLASS_ITEM_OPERATOR;
					n->number = (yyvsp[(2) - (5)].ival);
					n->args = (yyvsp[(4) - (5)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 696:

/* Line 1455 of yacc.c  */
#line 4628 "gram.y"
    {
					CreateOpClassItem *n = makeNode(CreateOpClassItem);
					n->itemtype = OPCLASS_ITEM_FUNCTION;
					n->number = (yyvsp[(2) - (5)].ival);
					n->args = (yyvsp[(4) - (5)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 697:

/* Line 1455 of yacc.c  */
#line 4640 "gram.y"
    {
					RemoveOpClassStmt *n = makeNode(RemoveOpClassStmt);
					n->opclassname = (yyvsp[(4) - (7)].list);
					n->amname = (yyvsp[(6) - (7)].str);
					n->behavior = (yyvsp[(7) - (7)].dbehavior);
					n->missing_ok = false;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 698:

/* Line 1455 of yacc.c  */
#line 4649 "gram.y"
    {
					RemoveOpClassStmt *n = makeNode(RemoveOpClassStmt);
					n->opclassname = (yyvsp[(6) - (9)].list);
					n->amname = (yyvsp[(8) - (9)].str);
					n->behavior = (yyvsp[(9) - (9)].dbehavior);
					n->missing_ok = true;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 699:

/* Line 1455 of yacc.c  */
#line 4661 "gram.y"
    {
					RemoveOpFamilyStmt *n = makeNode(RemoveOpFamilyStmt);
					n->opfamilyname = (yyvsp[(4) - (7)].list);
					n->amname = (yyvsp[(6) - (7)].str);
					n->behavior = (yyvsp[(7) - (7)].dbehavior);
					n->missing_ok = false;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 700:

/* Line 1455 of yacc.c  */
#line 4670 "gram.y"
    {
					RemoveOpFamilyStmt *n = makeNode(RemoveOpFamilyStmt);
					n->opfamilyname = (yyvsp[(6) - (9)].list);
					n->amname = (yyvsp[(8) - (9)].str);
					n->behavior = (yyvsp[(9) - (9)].dbehavior);
					n->missing_ok = true;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 701:

/* Line 1455 of yacc.c  */
#line 4691 "gram.y"
    {
					DropOwnedStmt *n = makeNode(DropOwnedStmt);
					n->roles = (yyvsp[(4) - (5)].list);
					n->behavior = (yyvsp[(5) - (5)].dbehavior);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 702:

/* Line 1455 of yacc.c  */
#line 4701 "gram.y"
    {
					ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt);
					n->roles = (yyvsp[(4) - (6)].list);
					n->newrole = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 703:

/* Line 1455 of yacc.c  */
#line 4719 "gram.y"
    {
					DropStmt *n = makeNode(DropStmt);
					n->removeType = (yyvsp[(2) - (6)].objtype);
					n->missing_ok = TRUE;
					n->objects = (yyvsp[(5) - (6)].list);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 704:

/* Line 1455 of yacc.c  */
#line 4728 "gram.y"
    {
					DropStmt *n = makeNode(DropStmt);
					n->removeType = (yyvsp[(2) - (4)].objtype);
					n->missing_ok = FALSE;
					n->objects = (yyvsp[(3) - (4)].list);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 705:

/* Line 1455 of yacc.c  */
#line 4739 "gram.y"
    { (yyval.objtype) = OBJECT_TABLE; ;}
    break;

  case 706:

/* Line 1455 of yacc.c  */
#line 4740 "gram.y"
    { (yyval.objtype) = OBJECT_SEQUENCE; ;}
    break;

  case 707:

/* Line 1455 of yacc.c  */
#line 4741 "gram.y"
    { (yyval.objtype) = OBJECT_VIEW; ;}
    break;

  case 708:

/* Line 1455 of yacc.c  */
#line 4742 "gram.y"
    { (yyval.objtype) = OBJECT_INDEX; ;}
    break;

  case 709:

/* Line 1455 of yacc.c  */
#line 4743 "gram.y"
    { (yyval.objtype) = OBJECT_FOREIGN_TABLE; ;}
    break;

  case 710:

/* Line 1455 of yacc.c  */
#line 4744 "gram.y"
    { (yyval.objtype) = OBJECT_TYPE; ;}
    break;

  case 711:

/* Line 1455 of yacc.c  */
#line 4745 "gram.y"
    { (yyval.objtype) = OBJECT_DOMAIN; ;}
    break;

  case 712:

/* Line 1455 of yacc.c  */
#line 4746 "gram.y"
    { (yyval.objtype) = OBJECT_COLLATION; ;}
    break;

  case 713:

/* Line 1455 of yacc.c  */
#line 4747 "gram.y"
    { (yyval.objtype) = OBJECT_CONVERSION; ;}
    break;

  case 714:

/* Line 1455 of yacc.c  */
#line 4748 "gram.y"
    { (yyval.objtype) = OBJECT_SCHEMA; ;}
    break;

  case 715:

/* Line 1455 of yacc.c  */
#line 4749 "gram.y"
    { (yyval.objtype) = OBJECT_EXTENSION; ;}
    break;

  case 716:

/* Line 1455 of yacc.c  */
#line 4750 "gram.y"
    { (yyval.objtype) = OBJECT_TSPARSER; ;}
    break;

  case 717:

/* Line 1455 of yacc.c  */
#line 4751 "gram.y"
    { (yyval.objtype) = OBJECT_TSDICTIONARY; ;}
    break;

  case 718:

/* Line 1455 of yacc.c  */
#line 4752 "gram.y"
    { (yyval.objtype) = OBJECT_TSTEMPLATE; ;}
    break;

  case 719:

/* Line 1455 of yacc.c  */
#line 4753 "gram.y"
    { (yyval.objtype) = OBJECT_TSCONFIGURATION; ;}
    break;

  case 720:

/* Line 1455 of yacc.c  */
#line 4757 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
    break;

  case 721:

/* Line 1455 of yacc.c  */
#line 4758 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 722:

/* Line 1455 of yacc.c  */
#line 4761 "gram.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 723:

/* Line 1455 of yacc.c  */
#line 4762 "gram.y"
    { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;}
    break;

  case 724:

/* Line 1455 of yacc.c  */
#line 4766 "gram.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;}
    break;

  case 725:

/* Line 1455 of yacc.c  */
#line 4768 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;}
    break;

  case 726:

/* Line 1455 of yacc.c  */
#line 4781 "gram.y"
    {
					TruncateStmt *n = makeNode(TruncateStmt);
					n->relations = (yyvsp[(3) - (5)].list);
					n->restart_seqs = (yyvsp[(4) - (5)].boolean);
					n->behavior = (yyvsp[(5) - (5)].dbehavior);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 727:

/* Line 1455 of yacc.c  */
#line 4791 "gram.y"
    { (yyval.boolean) = false; ;}
    break;

  case 728:

/* Line 1455 of yacc.c  */
#line 4792 "gram.y"
    { (yyval.boolean) = true; ;}
    break;

  case 729:

/* Line 1455 of yacc.c  */
#line 4793 "gram.y"
    { (yyval.boolean) = false; ;}
    break;

  case 730:

/* Line 1455 of yacc.c  */
#line 4820 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = (yyvsp[(3) - (6)].objtype);
					n->objname = (yyvsp[(4) - (6)].list);
					n->objargs = NIL;
					n->comment = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 731:

/* Line 1455 of yacc.c  */
#line 4829 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_AGGREGATE;
					n->objname = (yyvsp[(4) - (7)].list);
					n->objargs = (yyvsp[(5) - (7)].list);
					n->comment = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 732:

/* Line 1455 of yacc.c  */
#line 4838 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_FUNCTION;
					n->objname = (yyvsp[(4) - (7)].list);
					n->objargs = extractArgTypes((yyvsp[(5) - (7)].list));
					n->comment = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 733:

/* Line 1455 of yacc.c  */
#line 4847 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_OPERATOR;
					n->objname = (yyvsp[(4) - (7)].list);
					n->objargs = (yyvsp[(5) - (7)].list);
					n->comment = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 734:

/* Line 1455 of yacc.c  */
#line 4856 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_CONSTRAINT;
					n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str)));
					n->objargs = NIL;
					n->comment = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 735:

/* Line 1455 of yacc.c  */
#line 4865 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_RULE;
					n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str)));
					n->objargs = NIL;
					n->comment = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 736:

/* Line 1455 of yacc.c  */
#line 4874 "gram.y"
    {
					/* Obsolete syntax supported for awhile for compatibility */
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_RULE;
					n->objname = list_make1(makeString((yyvsp[(4) - (6)].str)));
					n->objargs = NIL;
					n->comment = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 737:

/* Line 1455 of yacc.c  */
#line 4884 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_TRIGGER;
					n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str)));
					n->objargs = NIL;
					n->comment = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 738:

/* Line 1455 of yacc.c  */
#line 4893 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_OPCLASS;
					n->objname = (yyvsp[(5) - (9)].list);
					n->objargs = list_make1(makeString((yyvsp[(7) - (9)].str)));
					n->comment = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 739:

/* Line 1455 of yacc.c  */
#line 4902 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_OPFAMILY;
					n->objname = (yyvsp[(5) - (9)].list);
					n->objargs = list_make1(makeString((yyvsp[(7) - (9)].str)));
					n->comment = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 740:

/* Line 1455 of yacc.c  */
#line 4911 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_LARGEOBJECT;
					n->objname = list_make1((yyvsp[(5) - (7)].value));
					n->objargs = NIL;
					n->comment = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 741:

/* Line 1455 of yacc.c  */
#line 4920 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_CAST;
					n->objname = list_make1((yyvsp[(5) - (10)].typnam));
					n->objargs = list_make1((yyvsp[(7) - (10)].typnam));
					n->comment = (yyvsp[(10) - (10)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 742:

/* Line 1455 of yacc.c  */
#line 4929 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_LANGUAGE;
					n->objname = (yyvsp[(5) - (7)].list);
					n->objargs = NIL;
					n->comment = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 743:

/* Line 1455 of yacc.c  */
#line 4938 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_TSPARSER;
					n->objname = (yyvsp[(6) - (8)].list);
					n->comment = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 744:

/* Line 1455 of yacc.c  */
#line 4946 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_TSDICTIONARY;
					n->objname = (yyvsp[(6) - (8)].list);
					n->comment = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 745:

/* Line 1455 of yacc.c  */
#line 4954 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_TSTEMPLATE;
					n->objname = (yyvsp[(6) - (8)].list);
					n->comment = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 746:

/* Line 1455 of yacc.c  */
#line 4962 "gram.y"
    {
					CommentStmt *n = makeNode(CommentStmt);
					n->objtype = OBJECT_TSCONFIGURATION;
					n->objname = (yyvsp[(6) - (8)].list);
					n->comment = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 747:

/* Line 1455 of yacc.c  */
#line 4972 "gram.y"
    { (yyval.objtype) = OBJECT_COLUMN; ;}
    break;

  case 748:

/* Line 1455 of yacc.c  */
#line 4973 "gram.y"
    { (yyval.objtype) = OBJECT_DATABASE; ;}
    break;

  case 749:

/* Line 1455 of yacc.c  */
#line 4974 "gram.y"
    { (yyval.objtype) = OBJECT_SCHEMA; ;}
    break;

  case 750:

/* Line 1455 of yacc.c  */
#line 4975 "gram.y"
    { (yyval.objtype) = OBJECT_INDEX; ;}
    break;

  case 751:

/* Line 1455 of yacc.c  */
#line 4976 "gram.y"
    { (yyval.objtype) = OBJECT_SEQUENCE; ;}
    break;

  case 752:

/* Line 1455 of yacc.c  */
#line 4977 "gram.y"
    { (yyval.objtype) = OBJECT_TABLE; ;}
    break;

  case 753:

/* Line 1455 of yacc.c  */
#line 4978 "gram.y"
    { (yyval.objtype) = OBJECT_DOMAIN; ;}
    break;

  case 754:

/* Line 1455 of yacc.c  */
#line 4979 "gram.y"
    { (yyval.objtype) = OBJECT_TYPE; ;}
    break;

  case 755:

/* Line 1455 of yacc.c  */
#line 4980 "gram.y"
    { (yyval.objtype) = OBJECT_VIEW; ;}
    break;

  case 756:

/* Line 1455 of yacc.c  */
#line 4981 "gram.y"
    { (yyval.objtype) = OBJECT_COLLATION; ;}
    break;

  case 757:

/* Line 1455 of yacc.c  */
#line 4982 "gram.y"
    { (yyval.objtype) = OBJECT_CONVERSION; ;}
    break;

  case 758:

/* Line 1455 of yacc.c  */
#line 4983 "gram.y"
    { (yyval.objtype) = OBJECT_TABLESPACE; ;}
    break;

  case 759:

/* Line 1455 of yacc.c  */
#line 4984 "gram.y"
    { (yyval.objtype) = OBJECT_EXTENSION; ;}
    break;

  case 760:

/* Line 1455 of yacc.c  */
#line 4985 "gram.y"
    { (yyval.objtype) = OBJECT_ROLE; ;}
    break;

  case 761:

/* Line 1455 of yacc.c  */
#line 4986 "gram.y"
    { (yyval.objtype) = OBJECT_FOREIGN_TABLE; ;}
    break;

  case 762:

/* Line 1455 of yacc.c  */
#line 4987 "gram.y"
    { (yyval.objtype) = OBJECT_FOREIGN_SERVER; ;}
    break;

  case 763:

/* Line 1455 of yacc.c  */
#line 4988 "gram.y"
    { (yyval.objtype) = OBJECT_FDW; ;}
    break;

  case 764:

/* Line 1455 of yacc.c  */
#line 4992 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 765:

/* Line 1455 of yacc.c  */
#line 4993 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 766:

/* Line 1455 of yacc.c  */
#line 5009 "gram.y"
    {
					SecLabelStmt *n = makeNode(SecLabelStmt);
					n->provider = (yyvsp[(3) - (8)].str);
					n->objtype = (yyvsp[(5) - (8)].objtype);
					n->objname = (yyvsp[(6) - (8)].list);
					n->objargs = NIL;
					n->label = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 767:

/* Line 1455 of yacc.c  */
#line 5020 "gram.y"
    {
					SecLabelStmt *n = makeNode(SecLabelStmt);
					n->provider = (yyvsp[(3) - (9)].str);
					n->objtype = OBJECT_AGGREGATE;
					n->objname = (yyvsp[(6) - (9)].list);
					n->objargs = (yyvsp[(7) - (9)].list);
					n->label = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 768:

/* Line 1455 of yacc.c  */
#line 5031 "gram.y"
    {
					SecLabelStmt *n = makeNode(SecLabelStmt);
					n->provider = (yyvsp[(3) - (9)].str);
					n->objtype = OBJECT_FUNCTION;
					n->objname = (yyvsp[(6) - (9)].list);
					n->objargs = extractArgTypes((yyvsp[(7) - (9)].list));
					n->label = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 769:

/* Line 1455 of yacc.c  */
#line 5042 "gram.y"
    {
					SecLabelStmt *n = makeNode(SecLabelStmt);
					n->provider = (yyvsp[(3) - (9)].str);
					n->objtype = OBJECT_LARGEOBJECT;
					n->objname = list_make1((yyvsp[(7) - (9)].value));
					n->objargs = NIL;
					n->label = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 770:

/* Line 1455 of yacc.c  */
#line 5053 "gram.y"
    {
					SecLabelStmt *n = makeNode(SecLabelStmt);
					n->provider = (yyvsp[(3) - (9)].str);
					n->objtype = OBJECT_LANGUAGE;
					n->objname = (yyvsp[(7) - (9)].list);
					n->objargs = NIL;
					n->label = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 771:

/* Line 1455 of yacc.c  */
#line 5064 "gram.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 772:

/* Line 1455 of yacc.c  */
#line 5065 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 773:

/* Line 1455 of yacc.c  */
#line 5069 "gram.y"
    { (yyval.objtype) = OBJECT_COLUMN; ;}
    break;

  case 774:

/* Line 1455 of yacc.c  */
#line 5070 "gram.y"
    { (yyval.objtype) = OBJECT_FOREIGN_TABLE; ;}
    break;

  case 775:

/* Line 1455 of yacc.c  */
#line 5071 "gram.y"
    { (yyval.objtype) = OBJECT_SCHEMA; ;}
    break;

  case 776:

/* Line 1455 of yacc.c  */
#line 5072 "gram.y"
    { (yyval.objtype) = OBJECT_SEQUENCE; ;}
    break;

  case 777:

/* Line 1455 of yacc.c  */
#line 5073 "gram.y"
    { (yyval.objtype) = OBJECT_TABLE; ;}
    break;

  case 778:

/* Line 1455 of yacc.c  */
#line 5074 "gram.y"
    { (yyval.objtype) = OBJECT_TYPE; ;}
    break;

  case 779:

/* Line 1455 of yacc.c  */
#line 5075 "gram.y"
    { (yyval.objtype) = OBJECT_TYPE; ;}
    break;

  case 780:

/* Line 1455 of yacc.c  */
#line 5076 "gram.y"
    { (yyval.objtype) = OBJECT_VIEW; ;}
    break;

  case 781:

/* Line 1455 of yacc.c  */
#line 5079 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 782:

/* Line 1455 of yacc.c  */
#line 5080 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 783:

/* Line 1455 of yacc.c  */
#line 5091 "gram.y"
    {
					FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node);
					n->ismove = FALSE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 784:

/* Line 1455 of yacc.c  */
#line 5097 "gram.y"
    {
					FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node);
					n->ismove = TRUE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 785:

/* Line 1455 of yacc.c  */
#line 5105 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(1) - (1)].str);
					n->direction = FETCH_FORWARD;
					n->howMany = 1;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 786:

/* Line 1455 of yacc.c  */
#line 5113 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(2) - (2)].str);
					n->direction = FETCH_FORWARD;
					n->howMany = 1;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 787:

/* Line 1455 of yacc.c  */
#line 5121 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(3) - (3)].str);
					n->direction = FETCH_FORWARD;
					n->howMany = 1;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 788:

/* Line 1455 of yacc.c  */
#line 5129 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(3) - (3)].str);
					n->direction = FETCH_BACKWARD;
					n->howMany = 1;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 789:

/* Line 1455 of yacc.c  */
#line 5137 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(3) - (3)].str);
					n->direction = FETCH_ABSOLUTE;
					n->howMany = 1;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 790:

/* Line 1455 of yacc.c  */
#line 5145 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(3) - (3)].str);
					n->direction = FETCH_ABSOLUTE;
					n->howMany = -1;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 791:

/* Line 1455 of yacc.c  */
#line 5153 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(4) - (4)].str);
					n->direction = FETCH_ABSOLUTE;
					n->howMany = (yyvsp[(2) - (4)].ival);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 792:

/* Line 1455 of yacc.c  */
#line 5161 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(4) - (4)].str);
					n->direction = FETCH_RELATIVE;
					n->howMany = (yyvsp[(2) - (4)].ival);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 793:

/* Line 1455 of yacc.c  */
#line 5169 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(3) - (3)].str);
					n->direction = FETCH_FORWARD;
					n->howMany = (yyvsp[(1) - (3)].ival);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 794:

/* Line 1455 of yacc.c  */
#line 5177 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(3) - (3)].str);
					n->direction = FETCH_FORWARD;
					n->howMany = FETCH_ALL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 795:

/* Line 1455 of yacc.c  */
#line 5185 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(3) - (3)].str);
					n->direction = FETCH_FORWARD;
					n->howMany = 1;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 796:

/* Line 1455 of yacc.c  */
#line 5193 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(4) - (4)].str);
					n->direction = FETCH_FORWARD;
					n->howMany = (yyvsp[(2) - (4)].ival);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 797:

/* Line 1455 of yacc.c  */
#line 5201 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(4) - (4)].str);
					n->direction = FETCH_FORWARD;
					n->howMany = FETCH_ALL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 798:

/* Line 1455 of yacc.c  */
#line 5209 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(3) - (3)].str);
					n->direction = FETCH_BACKWARD;
					n->howMany = 1;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 799:

/* Line 1455 of yacc.c  */
#line 5217 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(4) - (4)].str);
					n->direction = FETCH_BACKWARD;
					n->howMany = (yyvsp[(2) - (4)].ival);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 800:

/* Line 1455 of yacc.c  */
#line 5225 "gram.y"
    {
					FetchStmt *n = makeNode(FetchStmt);
					n->portalname = (yyvsp[(4) - (4)].str);
					n->direction = FETCH_BACKWARD;
					n->howMany = FETCH_ALL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 801:

/* Line 1455 of yacc.c  */
#line 5234 "gram.y"
    {;}
    break;

  case 802:

/* Line 1455 of yacc.c  */
#line 5235 "gram.y"
    {;}
    break;

  case 803:

/* Line 1455 of yacc.c  */
#line 5238 "gram.y"
    {;}
    break;

  case 804:

/* Line 1455 of yacc.c  */
#line 5239 "gram.y"
    {;}
    break;

  case 805:

/* Line 1455 of yacc.c  */
#line 5251 "gram.y"
    {
					GrantStmt *n = makeNode(GrantStmt);
					n->is_grant = true;
					n->privileges = (yyvsp[(2) - (7)].list);
					n->targtype = ((yyvsp[(4) - (7)].privtarget))->targtype;
					n->objtype = ((yyvsp[(4) - (7)].privtarget))->objtype;
					n->objects = ((yyvsp[(4) - (7)].privtarget))->objs;
					n->grantees = (yyvsp[(6) - (7)].list);
					n->grant_option = (yyvsp[(7) - (7)].boolean);
					(yyval.node) = (Node*)n;
				;}
    break;

  case 806:

/* Line 1455 of yacc.c  */
#line 5267 "gram.y"
    {
					GrantStmt *n = makeNode(GrantStmt);
					n->is_grant = false;
					n->grant_option = false;
					n->privileges = (yyvsp[(2) - (7)].list);
					n->targtype = ((yyvsp[(4) - (7)].privtarget))->targtype;
					n->objtype = ((yyvsp[(4) - (7)].privtarget))->objtype;
					n->objects = ((yyvsp[(4) - (7)].privtarget))->objs;
					n->grantees = (yyvsp[(6) - (7)].list);
					n->behavior = (yyvsp[(7) - (7)].dbehavior);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 807:

/* Line 1455 of yacc.c  */
#line 5281 "gram.y"
    {
					GrantStmt *n = makeNode(GrantStmt);
					n->is_grant = false;
					n->grant_option = true;
					n->privileges = (yyvsp[(5) - (10)].list);
					n->targtype = ((yyvsp[(7) - (10)].privtarget))->targtype;
					n->objtype = ((yyvsp[(7) - (10)].privtarget))->objtype;
					n->objects = ((yyvsp[(7) - (10)].privtarget))->objs;
					n->grantees = (yyvsp[(9) - (10)].list);
					n->behavior = (yyvsp[(10) - (10)].dbehavior);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 808:

/* Line 1455 of yacc.c  */
#line 5306 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 809:

/* Line 1455 of yacc.c  */
#line 5308 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 810:

/* Line 1455 of yacc.c  */
#line 5310 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 811:

/* Line 1455 of yacc.c  */
#line 5312 "gram.y"
    {
					AccessPriv *n = makeNode(AccessPriv);
					n->priv_name = NULL;
					n->cols = (yyvsp[(3) - (4)].list);
					(yyval.list) = list_make1(n);
				;}
    break;

  case 812:

/* Line 1455 of yacc.c  */
#line 5319 "gram.y"
    {
					AccessPriv *n = makeNode(AccessPriv);
					n->priv_name = NULL;
					n->cols = (yyvsp[(4) - (5)].list);
					(yyval.list) = list_make1(n);
				;}
    break;

  case 813:

/* Line 1455 of yacc.c  */
#line 5327 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].accesspriv)); ;}
    break;

  case 814:

/* Line 1455 of yacc.c  */
#line 5328 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].accesspriv)); ;}
    break;

  case 815:

/* Line 1455 of yacc.c  */
#line 5332 "gram.y"
    {
				AccessPriv *n = makeNode(AccessPriv);
				n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword));
				n->cols = (yyvsp[(2) - (2)].list);
				(yyval.accesspriv) = n;
			;}
    break;

  case 816:

/* Line 1455 of yacc.c  */
#line 5339 "gram.y"
    {
				AccessPriv *n = makeNode(AccessPriv);
				n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword));
				n->cols = (yyvsp[(2) - (2)].list);
				(yyval.accesspriv) = n;
			;}
    break;

  case 817:

/* Line 1455 of yacc.c  */
#line 5346 "gram.y"
    {
				AccessPriv *n = makeNode(AccessPriv);
				n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword));
				n->cols = (yyvsp[(2) - (2)].list);
				(yyval.accesspriv) = n;
			;}
    break;

  case 818:

/* Line 1455 of yacc.c  */
#line 5353 "gram.y"
    {
				AccessPriv *n = makeNode(AccessPriv);
				n->priv_name = (yyvsp[(1) - (2)].str);
				n->cols = (yyvsp[(2) - (2)].list);
				(yyval.accesspriv) = n;
			;}
    break;

  case 819:

/* Line 1455 of yacc.c  */
#line 5367 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_OBJECT;
					n->objtype = ACL_OBJECT_RELATION;
					n->objs = (yyvsp[(1) - (1)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 820:

/* Line 1455 of yacc.c  */
#line 5375 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_OBJECT;
					n->objtype = ACL_OBJECT_RELATION;
					n->objs = (yyvsp[(2) - (2)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 821:

/* Line 1455 of yacc.c  */
#line 5383 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_OBJECT;
					n->objtype = ACL_OBJECT_SEQUENCE;
					n->objs = (yyvsp[(2) - (2)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 822:

/* Line 1455 of yacc.c  */
#line 5391 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_OBJECT;
					n->objtype = ACL_OBJECT_FDW;
					n->objs = (yyvsp[(4) - (4)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 823:

/* Line 1455 of yacc.c  */
#line 5399 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_OBJECT;
					n->objtype = ACL_OBJECT_FOREIGN_SERVER;
					n->objs = (yyvsp[(3) - (3)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 824:

/* Line 1455 of yacc.c  */
#line 5407 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_OBJECT;
					n->objtype = ACL_OBJECT_FUNCTION;
					n->objs = (yyvsp[(2) - (2)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 825:

/* Line 1455 of yacc.c  */
#line 5415 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_OBJECT;
					n->objtype = ACL_OBJECT_DATABASE;
					n->objs = (yyvsp[(2) - (2)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 826:

/* Line 1455 of yacc.c  */
#line 5423 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_OBJECT;
					n->objtype = ACL_OBJECT_LANGUAGE;
					n->objs = (yyvsp[(2) - (2)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 827:

/* Line 1455 of yacc.c  */
#line 5431 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_OBJECT;
					n->objtype = ACL_OBJECT_LARGEOBJECT;
					n->objs = (yyvsp[(3) - (3)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 828:

/* Line 1455 of yacc.c  */
#line 5439 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_OBJECT;
					n->objtype = ACL_OBJECT_NAMESPACE;
					n->objs = (yyvsp[(2) - (2)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 829:

/* Line 1455 of yacc.c  */
#line 5447 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_OBJECT;
					n->objtype = ACL_OBJECT_TABLESPACE;
					n->objs = (yyvsp[(2) - (2)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 830:

/* Line 1455 of yacc.c  */
#line 5455 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
					n->objtype = ACL_OBJECT_RELATION;
					n->objs = (yyvsp[(5) - (5)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 831:

/* Line 1455 of yacc.c  */
#line 5463 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
					n->objtype = ACL_OBJECT_SEQUENCE;
					n->objs = (yyvsp[(5) - (5)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 832:

/* Line 1455 of yacc.c  */
#line 5471 "gram.y"
    {
					PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
					n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
					n->objtype = ACL_OBJECT_FUNCTION;
					n->objs = (yyvsp[(5) - (5)].list);
					(yyval.privtarget) = n;
				;}
    break;

  case 833:

/* Line 1455 of yacc.c  */
#line 5482 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 834:

/* Line 1455 of yacc.c  */
#line 5483 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 835:

/* Line 1455 of yacc.c  */
#line 5487 "gram.y"
    {
					PrivGrantee *n = makeNode(PrivGrantee);
					/* This hack lets us avoid reserving PUBLIC as a keyword*/
					if (strcmp((yyvsp[(1) - (1)].str), "public") == 0)
						n->rolname = NULL;
					else
						n->rolname = (yyvsp[(1) - (1)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 836:

/* Line 1455 of yacc.c  */
#line 5497 "gram.y"
    {
					PrivGrantee *n = makeNode(PrivGrantee);
					/* Treat GROUP PUBLIC as a synonym for PUBLIC */
					if (strcmp((yyvsp[(2) - (2)].str), "public") == 0)
						n->rolname = NULL;
					else
						n->rolname = (yyvsp[(2) - (2)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 837:

/* Line 1455 of yacc.c  */
#line 5510 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 838:

/* Line 1455 of yacc.c  */
#line 5511 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 839:

/* Line 1455 of yacc.c  */
#line 5515 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].funwithargs)); ;}
    break;

  case 840:

/* Line 1455 of yacc.c  */
#line 5517 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].funwithargs)); ;}
    break;

  case 841:

/* Line 1455 of yacc.c  */
#line 5522 "gram.y"
    {
					FuncWithArgs *n = makeNode(FuncWithArgs);
					n->funcname = (yyvsp[(1) - (2)].list);
					n->funcargs = extractArgTypes((yyvsp[(2) - (2)].list));
					(yyval.funwithargs) = n;
				;}
    break;

  case 842:

/* Line 1455 of yacc.c  */
#line 5538 "gram.y"
    {
					GrantRoleStmt *n = makeNode(GrantRoleStmt);
					n->is_grant = true;
					n->granted_roles = (yyvsp[(2) - (6)].list);
					n->grantee_roles = (yyvsp[(4) - (6)].list);
					n->admin_opt = (yyvsp[(5) - (6)].boolean);
					n->grantor = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node*)n;
				;}
    break;

  case 843:

/* Line 1455 of yacc.c  */
#line 5551 "gram.y"
    {
					GrantRoleStmt *n = makeNode(GrantRoleStmt);
					n->is_grant = false;
					n->admin_opt = false;
					n->granted_roles = (yyvsp[(2) - (6)].list);
					n->grantee_roles = (yyvsp[(4) - (6)].list);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					(yyval.node) = (Node*)n;
				;}
    break;

  case 844:

/* Line 1455 of yacc.c  */
#line 5561 "gram.y"
    {
					GrantRoleStmt *n = makeNode(GrantRoleStmt);
					n->is_grant = false;
					n->admin_opt = true;
					n->granted_roles = (yyvsp[(5) - (9)].list);
					n->grantee_roles = (yyvsp[(7) - (9)].list);
					n->behavior = (yyvsp[(9) - (9)].dbehavior);
					(yyval.node) = (Node*)n;
				;}
    break;

  case 845:

/* Line 1455 of yacc.c  */
#line 5572 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 846:

/* Line 1455 of yacc.c  */
#line 5573 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 847:

/* Line 1455 of yacc.c  */
#line 5576 "gram.y"
    { (yyval.str) = (yyvsp[(3) - (3)].str); ;}
    break;

  case 848:

/* Line 1455 of yacc.c  */
#line 5577 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 849:

/* Line 1455 of yacc.c  */
#line 5588 "gram.y"
    {
					AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt);
					n->options = (yyvsp[(4) - (5)].list);
					n->action = (GrantStmt *) (yyvsp[(5) - (5)].node);
					(yyval.node) = (Node*)n;
				;}
    break;

  case 850:

/* Line 1455 of yacc.c  */
#line 5597 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 851:

/* Line 1455 of yacc.c  */
#line 5598 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 852:

/* Line 1455 of yacc.c  */
#line 5603 "gram.y"
    {
					(yyval.defelt) = makeDefElem("schemas", (Node *)(yyvsp[(3) - (3)].list));
				;}
    break;

  case 853:

/* Line 1455 of yacc.c  */
#line 5607 "gram.y"
    {
					(yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[(3) - (3)].list));
				;}
    break;

  case 854:

/* Line 1455 of yacc.c  */
#line 5611 "gram.y"
    {
					(yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[(3) - (3)].list));
				;}
    break;

  case 855:

/* Line 1455 of yacc.c  */
#line 5623 "gram.y"
    {
					GrantStmt *n = makeNode(GrantStmt);
					n->is_grant = true;
					n->privileges = (yyvsp[(2) - (7)].list);
					n->targtype = ACL_TARGET_DEFAULTS;
					n->objtype = (yyvsp[(4) - (7)].ival);
					n->objects = NIL;
					n->grantees = (yyvsp[(6) - (7)].list);
					n->grant_option = (yyvsp[(7) - (7)].boolean);
					(yyval.node) = (Node*)n;
				;}
    break;

  case 856:

/* Line 1455 of yacc.c  */
#line 5636 "gram.y"
    {
					GrantStmt *n = makeNode(GrantStmt);
					n->is_grant = false;
					n->grant_option = false;
					n->privileges = (yyvsp[(2) - (7)].list);
					n->targtype = ACL_TARGET_DEFAULTS;
					n->objtype = (yyvsp[(4) - (7)].ival);
					n->objects = NIL;
					n->grantees = (yyvsp[(6) - (7)].list);
					n->behavior = (yyvsp[(7) - (7)].dbehavior);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 857:

/* Line 1455 of yacc.c  */
#line 5650 "gram.y"
    {
					GrantStmt *n = makeNode(GrantStmt);
					n->is_grant = false;
					n->grant_option = true;
					n->privileges = (yyvsp[(5) - (10)].list);
					n->targtype = ACL_TARGET_DEFAULTS;
					n->objtype = (yyvsp[(7) - (10)].ival);
					n->objects = NIL;
					n->grantees = (yyvsp[(9) - (10)].list);
					n->behavior = (yyvsp[(10) - (10)].dbehavior);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 858:

/* Line 1455 of yacc.c  */
#line 5665 "gram.y"
    { (yyval.ival) = ACL_OBJECT_RELATION; ;}
    break;

  case 859:

/* Line 1455 of yacc.c  */
#line 5666 "gram.y"
    { (yyval.ival) = ACL_OBJECT_FUNCTION; ;}
    break;

  case 860:

/* Line 1455 of yacc.c  */
#line 5667 "gram.y"
    { (yyval.ival) = ACL_OBJECT_SEQUENCE; ;}
    break;

  case 861:

/* Line 1455 of yacc.c  */
#line 5682 "gram.y"
    {
					IndexStmt *n = makeNode(IndexStmt);
					n->unique = (yyvsp[(2) - (14)].boolean);
					n->concurrent = (yyvsp[(4) - (14)].boolean);
					n->idxname = (yyvsp[(5) - (14)].str);
					n->relation = (yyvsp[(7) - (14)].range);
					n->accessMethod = (yyvsp[(8) - (14)].str);
					n->indexParams = (yyvsp[(10) - (14)].list);
					n->options = (yyvsp[(12) - (14)].list);
					n->tableSpace = (yyvsp[(13) - (14)].str);
					n->whereClause = (yyvsp[(14) - (14)].node);
					n->indexOid = InvalidOid;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 862:

/* Line 1455 of yacc.c  */
#line 5699 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 863:

/* Line 1455 of yacc.c  */
#line 5700 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 864:

/* Line 1455 of yacc.c  */
#line 5704 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 865:

/* Line 1455 of yacc.c  */
#line 5705 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 866:

/* Line 1455 of yacc.c  */
#line 5709 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 867:

/* Line 1455 of yacc.c  */
#line 5710 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 868:

/* Line 1455 of yacc.c  */
#line 5714 "gram.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 869:

/* Line 1455 of yacc.c  */
#line 5715 "gram.y"
    { (yyval.str) = DEFAULT_INDEX_TYPE; ;}
    break;

  case 870:

/* Line 1455 of yacc.c  */
#line 5718 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;}
    break;

  case 871:

/* Line 1455 of yacc.c  */
#line 5719 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;}
    break;

  case 872:

/* Line 1455 of yacc.c  */
#line 5728 "gram.y"
    {
					(yyval.ielem) = makeNode(IndexElem);
					(yyval.ielem)->name = (yyvsp[(1) - (5)].str);
					(yyval.ielem)->expr = NULL;
					(yyval.ielem)->indexcolname = NULL;
					(yyval.ielem)->collation = (yyvsp[(2) - (5)].list);
					(yyval.ielem)->opclass = (yyvsp[(3) - (5)].list);
					(yyval.ielem)->ordering = (yyvsp[(4) - (5)].ival);
					(yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].ival);
				;}
    break;

  case 873:

/* Line 1455 of yacc.c  */
#line 5739 "gram.y"
    {
					(yyval.ielem) = makeNode(IndexElem);
					(yyval.ielem)->name = NULL;
					(yyval.ielem)->expr = (yyvsp[(1) - (5)].node);
					(yyval.ielem)->indexcolname = NULL;
					(yyval.ielem)->collation = (yyvsp[(2) - (5)].list);
					(yyval.ielem)->opclass = (yyvsp[(3) - (5)].list);
					(yyval.ielem)->ordering = (yyvsp[(4) - (5)].ival);
					(yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].ival);
				;}
    break;

  case 874:

/* Line 1455 of yacc.c  */
#line 5750 "gram.y"
    {
					(yyval.ielem) = makeNode(IndexElem);
					(yyval.ielem)->name = NULL;
					(yyval.ielem)->expr = (yyvsp[(2) - (7)].node);
					(yyval.ielem)->indexcolname = NULL;
					(yyval.ielem)->collation = (yyvsp[(4) - (7)].list);
					(yyval.ielem)->opclass = (yyvsp[(5) - (7)].list);
					(yyval.ielem)->ordering = (yyvsp[(6) - (7)].ival);
					(yyval.ielem)->nulls_ordering = (yyvsp[(7) - (7)].ival);
				;}
    break;

  case 875:

/* Line 1455 of yacc.c  */
#line 5762 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 876:

/* Line 1455 of yacc.c  */
#line 5763 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 877:

/* Line 1455 of yacc.c  */
#line 5766 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 878:

/* Line 1455 of yacc.c  */
#line 5767 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 879:

/* Line 1455 of yacc.c  */
#line 5768 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 880:

/* Line 1455 of yacc.c  */
#line 5771 "gram.y"
    { (yyval.ival) = SORTBY_ASC; ;}
    break;

  case 881:

/* Line 1455 of yacc.c  */
#line 5772 "gram.y"
    { (yyval.ival) = SORTBY_DESC; ;}
    break;

  case 882:

/* Line 1455 of yacc.c  */
#line 5773 "gram.y"
    { (yyval.ival) = SORTBY_DEFAULT; ;}
    break;

  case 883:

/* Line 1455 of yacc.c  */
#line 5776 "gram.y"
    { (yyval.ival) = SORTBY_NULLS_FIRST; ;}
    break;

  case 884:

/* Line 1455 of yacc.c  */
#line 5777 "gram.y"
    { (yyval.ival) = SORTBY_NULLS_LAST; ;}
    break;

  case 885:

/* Line 1455 of yacc.c  */
#line 5778 "gram.y"
    { (yyval.ival) = SORTBY_NULLS_DEFAULT; ;}
    break;

  case 886:

/* Line 1455 of yacc.c  */
#line 5796 "gram.y"
    {
					CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
					n->replace = (yyvsp[(2) - (9)].boolean);
					n->funcname = (yyvsp[(4) - (9)].list);
					n->parameters = (yyvsp[(5) - (9)].list);
					n->returnType = (yyvsp[(7) - (9)].typnam);
					n->options = (yyvsp[(8) - (9)].list);
					n->withClause = (yyvsp[(9) - (9)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 887:

/* Line 1455 of yacc.c  */
#line 5808 "gram.y"
    {
					CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
					n->replace = (yyvsp[(2) - (12)].boolean);
					n->funcname = (yyvsp[(4) - (12)].list);
					n->parameters = mergeTableFuncParameters((yyvsp[(5) - (12)].list), (yyvsp[(9) - (12)].list));
					n->returnType = TableFuncTypeName((yyvsp[(9) - (12)].list));
					n->returnType->location = (yylsp[(7) - (12)]);
					n->options = (yyvsp[(11) - (12)].list);
					n->withClause = (yyvsp[(12) - (12)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 888:

/* Line 1455 of yacc.c  */
#line 5821 "gram.y"
    {
					CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
					n->replace = (yyvsp[(2) - (7)].boolean);
					n->funcname = (yyvsp[(4) - (7)].list);
					n->parameters = (yyvsp[(5) - (7)].list);
					n->returnType = NULL;
					n->options = (yyvsp[(6) - (7)].list);
					n->withClause = (yyvsp[(7) - (7)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 889:

/* Line 1455 of yacc.c  */
#line 5834 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 890:

/* Line 1455 of yacc.c  */
#line 5835 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 891:

/* Line 1455 of yacc.c  */
#line 5838 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 892:

/* Line 1455 of yacc.c  */
#line 5839 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 893:

/* Line 1455 of yacc.c  */
#line 5843 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;}
    break;

  case 894:

/* Line 1455 of yacc.c  */
#line 5844 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;}
    break;

  case 895:

/* Line 1455 of yacc.c  */
#line 5852 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 896:

/* Line 1455 of yacc.c  */
#line 5853 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 897:

/* Line 1455 of yacc.c  */
#line 5857 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;}
    break;

  case 898:

/* Line 1455 of yacc.c  */
#line 5859 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;}
    break;

  case 899:

/* Line 1455 of yacc.c  */
#line 5874 "gram.y"
    {
					FunctionParameter *n = makeNode(FunctionParameter);
					n->name = (yyvsp[(2) - (3)].str);
					n->argType = (yyvsp[(3) - (3)].typnam);
					n->mode = (yyvsp[(1) - (3)].fun_param_mode);
					n->defexpr = NULL;
					(yyval.fun_param) = n;
				;}
    break;

  case 900:

/* Line 1455 of yacc.c  */
#line 5883 "gram.y"
    {
					FunctionParameter *n = makeNode(FunctionParameter);
					n->name = (yyvsp[(1) - (3)].str);
					n->argType = (yyvsp[(3) - (3)].typnam);
					n->mode = (yyvsp[(2) - (3)].fun_param_mode);
					n->defexpr = NULL;
					(yyval.fun_param) = n;
				;}
    break;

  case 901:

/* Line 1455 of yacc.c  */
#line 5892 "gram.y"
    {
					FunctionParameter *n = makeNode(FunctionParameter);
					n->name = (yyvsp[(1) - (2)].str);
					n->argType = (yyvsp[(2) - (2)].typnam);
					n->mode = FUNC_PARAM_IN;
					n->defexpr = NULL;
					(yyval.fun_param) = n;
				;}
    break;

  case 902:

/* Line 1455 of yacc.c  */
#line 5901 "gram.y"
    {
					FunctionParameter *n = makeNode(FunctionParameter);
					n->name = NULL;
					n->argType = (yyvsp[(2) - (2)].typnam);
					n->mode = (yyvsp[(1) - (2)].fun_param_mode);
					n->defexpr = NULL;
					(yyval.fun_param) = n;
				;}
    break;

  case 903:

/* Line 1455 of yacc.c  */
#line 5910 "gram.y"
    {
					FunctionParameter *n = makeNode(FunctionParameter);
					n->name = NULL;
					n->argType = (yyvsp[(1) - (1)].typnam);
					n->mode = FUNC_PARAM_IN;
					n->defexpr = NULL;
					(yyval.fun_param) = n;
				;}
    break;

  case 904:

/* Line 1455 of yacc.c  */
#line 5921 "gram.y"
    { (yyval.fun_param_mode) = FUNC_PARAM_IN; ;}
    break;

  case 905:

/* Line 1455 of yacc.c  */
#line 5922 "gram.y"
    { (yyval.fun_param_mode) = FUNC_PARAM_OUT; ;}
    break;

  case 906:

/* Line 1455 of yacc.c  */
#line 5923 "gram.y"
    { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; ;}
    break;

  case 907:

/* Line 1455 of yacc.c  */
#line 5924 "gram.y"
    { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; ;}
    break;

  case 908:

/* Line 1455 of yacc.c  */
#line 5925 "gram.y"
    { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; ;}
    break;

  case 910:

/* Line 1455 of yacc.c  */
#line 5936 "gram.y"
    {
					/* We can catch over-specified results here if we want to,
					 * but for now better to silently swallow typmod, etc.
					 * - thomas 2000-03-22
					 */
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 911:

/* Line 1455 of yacc.c  */
#line 5950 "gram.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 912:

/* Line 1455 of yacc.c  */
#line 5952 "gram.y"
    {
					(yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (4)].str)), (yyvsp[(2) - (4)].list)));
					(yyval.typnam)->pct_type = true;
					(yyval.typnam)->location = (yylsp[(1) - (4)]);
				;}
    break;

  case 913:

/* Line 1455 of yacc.c  */
#line 5958 "gram.y"
    {
					(yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(2) - (5)].str)), (yyvsp[(3) - (5)].list)));
					(yyval.typnam)->pct_type = true;
					(yyval.typnam)->setof = TRUE;
					(yyval.typnam)->location = (yylsp[(2) - (5)]);
				;}
    break;

  case 914:

/* Line 1455 of yacc.c  */
#line 5968 "gram.y"
    {
				    (yyval.fun_param) = (yyvsp[(1) - (1)].fun_param);
			    ;}
    break;

  case 915:

/* Line 1455 of yacc.c  */
#line 5972 "gram.y"
    {
				    (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param);
				    (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node);
			    ;}
    break;

  case 916:

/* Line 1455 of yacc.c  */
#line 5977 "gram.y"
    {
				    (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param);
				    (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node);
			    ;}
    break;

  case 917:

/* Line 1455 of yacc.c  */
#line 5986 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 918:

/* Line 1455 of yacc.c  */
#line 5987 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 919:

/* Line 1455 of yacc.c  */
#line 5995 "gram.y"
    {
					(yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(FALSE));
				;}
    break;

  case 920:

/* Line 1455 of yacc.c  */
#line 5999 "gram.y"
    {
					(yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(TRUE));
				;}
    break;

  case 921:

/* Line 1455 of yacc.c  */
#line 6003 "gram.y"
    {
					(yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(TRUE));
				;}
    break;

  case 922:

/* Line 1455 of yacc.c  */
#line 6007 "gram.y"
    {
					(yyval.defelt) = makeDefElem("volatility", (Node *)makeString("immutable"));
				;}
    break;

  case 923:

/* Line 1455 of yacc.c  */
#line 6011 "gram.y"
    {
					(yyval.defelt) = makeDefElem("volatility", (Node *)makeString("stable"));
				;}
    break;

  case 924:

/* Line 1455 of yacc.c  */
#line 6015 "gram.y"
    {
					(yyval.defelt) = makeDefElem("volatility", (Node *)makeString("volatile"));
				;}
    break;

  case 925:

/* Line 1455 of yacc.c  */
#line 6019 "gram.y"
    {
					(yyval.defelt) = makeDefElem("security", (Node *)makeInteger(TRUE));
				;}
    break;

  case 926:

/* Line 1455 of yacc.c  */
#line 6023 "gram.y"
    {
					(yyval.defelt) = makeDefElem("security", (Node *)makeInteger(FALSE));
				;}
    break;

  case 927:

/* Line 1455 of yacc.c  */
#line 6027 "gram.y"
    {
					(yyval.defelt) = makeDefElem("security", (Node *)makeInteger(TRUE));
				;}
    break;

  case 928:

/* Line 1455 of yacc.c  */
#line 6031 "gram.y"
    {
					(yyval.defelt) = makeDefElem("security", (Node *)makeInteger(FALSE));
				;}
    break;

  case 929:

/* Line 1455 of yacc.c  */
#line 6035 "gram.y"
    {
					(yyval.defelt) = makeDefElem("cost", (Node *)(yyvsp[(2) - (2)].value));
				;}
    break;

  case 930:

/* Line 1455 of yacc.c  */
#line 6039 "gram.y"
    {
					(yyval.defelt) = makeDefElem("rows", (Node *)(yyvsp[(2) - (2)].value));
				;}
    break;

  case 931:

/* Line 1455 of yacc.c  */
#line 6043 "gram.y"
    {
					/* we abuse the normal content of a DefElem here */
					(yyval.defelt) = makeDefElem("set", (Node *)(yyvsp[(1) - (1)].vsetstmt));
				;}
    break;

  case 932:

/* Line 1455 of yacc.c  */
#line 6051 "gram.y"
    {
					(yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[(2) - (2)].list));
				;}
    break;

  case 933:

/* Line 1455 of yacc.c  */
#line 6055 "gram.y"
    {
					(yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[(2) - (2)].str)));
				;}
    break;

  case 934:

/* Line 1455 of yacc.c  */
#line 6059 "gram.y"
    {
					(yyval.defelt) = makeDefElem("window", (Node *)makeInteger(TRUE));
				;}
    break;

  case 935:

/* Line 1455 of yacc.c  */
#line 6063 "gram.y"
    {
					(yyval.defelt) = (yyvsp[(1) - (1)].defelt);
				;}
    break;

  case 936:

/* Line 1455 of yacc.c  */
#line 6068 "gram.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 937:

/* Line 1455 of yacc.c  */
#line 6070 "gram.y"
    {
					(yyval.list) = list_make2(makeString((yyvsp[(1) - (3)].str)), makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 938:

/* Line 1455 of yacc.c  */
#line 6076 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 939:

/* Line 1455 of yacc.c  */
#line 6077 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 940:

/* Line 1455 of yacc.c  */
#line 6081 "gram.y"
    {
					FunctionParameter *n = makeNode(FunctionParameter);
					n->name = (yyvsp[(1) - (2)].str);
					n->argType = (yyvsp[(2) - (2)].typnam);
					n->mode = FUNC_PARAM_TABLE;
					n->defexpr = NULL;
					(yyval.fun_param) = n;
				;}
    break;

  case 941:

/* Line 1455 of yacc.c  */
#line 6093 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param));
				;}
    break;

  case 942:

/* Line 1455 of yacc.c  */
#line 6097 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param));
				;}
    break;

  case 943:

/* Line 1455 of yacc.c  */
#line 6112 "gram.y"
    {
					AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
					n->func = (yyvsp[(3) - (5)].funwithargs);
					n->actions = (yyvsp[(4) - (5)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 944:

/* Line 1455 of yacc.c  */
#line 6122 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 945:

/* Line 1455 of yacc.c  */
#line 6123 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 948:

/* Line 1455 of yacc.c  */
#line 6145 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_FUNCTION;
					n->name = (yyvsp[(3) - (5)].list);
					n->args = extractArgTypes((yyvsp[(4) - (5)].list));
					n->behavior = (yyvsp[(5) - (5)].dbehavior);
					n->missing_ok = false;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 949:

/* Line 1455 of yacc.c  */
#line 6155 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_FUNCTION;
					n->name = (yyvsp[(5) - (7)].list);
					n->args = extractArgTypes((yyvsp[(6) - (7)].list));
					n->behavior = (yyvsp[(7) - (7)].dbehavior);
					n->missing_ok = true;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 950:

/* Line 1455 of yacc.c  */
#line 6168 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_AGGREGATE;
					n->name = (yyvsp[(3) - (5)].list);
					n->args = (yyvsp[(4) - (5)].list);
					n->behavior = (yyvsp[(5) - (5)].dbehavior);
					n->missing_ok = false;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 951:

/* Line 1455 of yacc.c  */
#line 6178 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_AGGREGATE;
					n->name = (yyvsp[(5) - (7)].list);
					n->args = (yyvsp[(6) - (7)].list);
					n->behavior = (yyvsp[(7) - (7)].dbehavior);
					n->missing_ok = true;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 952:

/* Line 1455 of yacc.c  */
#line 6191 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_OPERATOR;
					n->name = (yyvsp[(3) - (5)].list);
					n->args = (yyvsp[(4) - (5)].list);
					n->behavior = (yyvsp[(5) - (5)].dbehavior);
					n->missing_ok = false;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 953:

/* Line 1455 of yacc.c  */
#line 6201 "gram.y"
    {
					RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
					n->kind = OBJECT_OPERATOR;
					n->name = (yyvsp[(5) - (7)].list);
					n->args = (yyvsp[(6) - (7)].list);
					n->behavior = (yyvsp[(7) - (7)].dbehavior);
					n->missing_ok = true;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 954:

/* Line 1455 of yacc.c  */
#line 6214 "gram.y"
    {
				   ereport(ERROR,
						   (errcode(ERRCODE_SYNTAX_ERROR),
							errmsg("missing argument"),
							errhint("Use NONE to denote the missing argument of a unary operator."),
							parser_errposition((yylsp[(3) - (3)]))));
				;}
    break;

  case 955:

/* Line 1455 of yacc.c  */
#line 6222 "gram.y"
    { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), (yyvsp[(4) - (5)].typnam)); ;}
    break;

  case 956:

/* Line 1455 of yacc.c  */
#line 6224 "gram.y"
    { (yyval.list) = list_make2(NULL, (yyvsp[(4) - (5)].typnam)); ;}
    break;

  case 957:

/* Line 1455 of yacc.c  */
#line 6226 "gram.y"
    { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), NULL); ;}
    break;

  case 958:

/* Line 1455 of yacc.c  */
#line 6231 "gram.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 959:

/* Line 1455 of yacc.c  */
#line 6233 "gram.y"
    { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 960:

/* Line 1455 of yacc.c  */
#line 6246 "gram.y"
    {
					DoStmt *n = makeNode(DoStmt);
					n->args = (yyvsp[(2) - (2)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 961:

/* Line 1455 of yacc.c  */
#line 6254 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 962:

/* Line 1455 of yacc.c  */
#line 6255 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 963:

/* Line 1455 of yacc.c  */
#line 6260 "gram.y"
    {
					(yyval.defelt) = makeDefElem("as", (Node *)makeString((yyvsp[(1) - (1)].str)));
				;}
    break;

  case 964:

/* Line 1455 of yacc.c  */
#line 6264 "gram.y"
    {
					(yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[(2) - (2)].str)));
				;}
    break;

  case 965:

/* Line 1455 of yacc.c  */
#line 6277 "gram.y"
    {
					CreateCastStmt *n = makeNode(CreateCastStmt);
					n->sourcetype = (yyvsp[(4) - (11)].typnam);
					n->targettype = (yyvsp[(6) - (11)].typnam);
					n->func = (yyvsp[(10) - (11)].funwithargs);
					n->context = (CoercionContext) (yyvsp[(11) - (11)].ival);
					n->inout = false;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 966:

/* Line 1455 of yacc.c  */
#line 6288 "gram.y"
    {
					CreateCastStmt *n = makeNode(CreateCastStmt);
					n->sourcetype = (yyvsp[(4) - (10)].typnam);
					n->targettype = (yyvsp[(6) - (10)].typnam);
					n->func = NULL;
					n->context = (CoercionContext) (yyvsp[(10) - (10)].ival);
					n->inout = false;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 967:

/* Line 1455 of yacc.c  */
#line 6299 "gram.y"
    {
					CreateCastStmt *n = makeNode(CreateCastStmt);
					n->sourcetype = (yyvsp[(4) - (10)].typnam);
					n->targettype = (yyvsp[(6) - (10)].typnam);
					n->func = NULL;
					n->context = (CoercionContext) (yyvsp[(10) - (10)].ival);
					n->inout = true;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 968:

/* Line 1455 of yacc.c  */
#line 6310 "gram.y"
    { (yyval.ival) = COERCION_IMPLICIT; ;}
    break;

  case 969:

/* Line 1455 of yacc.c  */
#line 6311 "gram.y"
    { (yyval.ival) = COERCION_ASSIGNMENT; ;}
    break;

  case 970:

/* Line 1455 of yacc.c  */
#line 6312 "gram.y"
    { (yyval.ival) = COERCION_EXPLICIT; ;}
    break;

  case 971:

/* Line 1455 of yacc.c  */
#line 6317 "gram.y"
    {
					DropCastStmt *n = makeNode(DropCastStmt);
					n->sourcetype = (yyvsp[(5) - (9)].typnam);
					n->targettype = (yyvsp[(7) - (9)].typnam);
					n->behavior = (yyvsp[(9) - (9)].dbehavior);
					n->missing_ok = (yyvsp[(3) - (9)].boolean);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 972:

/* Line 1455 of yacc.c  */
#line 6327 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 973:

/* Line 1455 of yacc.c  */
#line 6328 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 974:

/* Line 1455 of yacc.c  */
#line 6343 "gram.y"
    {
					ReindexStmt *n = makeNode(ReindexStmt);
					n->kind = (yyvsp[(2) - (4)].objtype);
					n->relation = (yyvsp[(3) - (4)].range);
					n->name = NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 975:

/* Line 1455 of yacc.c  */
#line 6351 "gram.y"
    {
					ReindexStmt *n = makeNode(ReindexStmt);
					n->kind = OBJECT_DATABASE;
					n->name = (yyvsp[(3) - (4)].str);
					n->relation = NULL;
					n->do_system = true;
					n->do_user = false;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 976:

/* Line 1455 of yacc.c  */
#line 6361 "gram.y"
    {
					ReindexStmt *n = makeNode(ReindexStmt);
					n->kind = OBJECT_DATABASE;
					n->name = (yyvsp[(3) - (4)].str);
					n->relation = NULL;
					n->do_system = true;
					n->do_user = true;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 977:

/* Line 1455 of yacc.c  */
#line 6373 "gram.y"
    { (yyval.objtype) = OBJECT_INDEX; ;}
    break;

  case 978:

/* Line 1455 of yacc.c  */
#line 6374 "gram.y"
    { (yyval.objtype) = OBJECT_TABLE; ;}
    break;

  case 979:

/* Line 1455 of yacc.c  */
#line 6377 "gram.y"
    {  (yyval.boolean) = TRUE; ;}
    break;

  case 980:

/* Line 1455 of yacc.c  */
#line 6378 "gram.y"
    {  (yyval.boolean) = FALSE; ;}
    break;

  case 981:

/* Line 1455 of yacc.c  */
#line 6389 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_AGGREGATE;
					n->object = (yyvsp[(3) - (7)].list);
					n->objarg = (yyvsp[(4) - (7)].list);
					n->newname = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 982:

/* Line 1455 of yacc.c  */
#line 6398 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_COLLATION;
					n->object = (yyvsp[(3) - (6)].list);
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 983:

/* Line 1455 of yacc.c  */
#line 6406 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_CONVERSION;
					n->object = (yyvsp[(3) - (6)].list);
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 984:

/* Line 1455 of yacc.c  */
#line 6414 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_DATABASE;
					n->subname = (yyvsp[(3) - (6)].str);
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 985:

/* Line 1455 of yacc.c  */
#line 6422 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_FUNCTION;
					n->object = (yyvsp[(3) - (6)].funwithargs)->funcname;
					n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs;
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 986:

/* Line 1455 of yacc.c  */
#line 6431 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_ROLE;
					n->subname = (yyvsp[(3) - (6)].str);
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 987:

/* Line 1455 of yacc.c  */
#line 6439 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_LANGUAGE;
					n->subname = (yyvsp[(4) - (7)].str);
					n->newname = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 988:

/* Line 1455 of yacc.c  */
#line 6447 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_OPCLASS;
					n->object = (yyvsp[(4) - (9)].list);
					n->subname = (yyvsp[(6) - (9)].str);
					n->newname = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 989:

/* Line 1455 of yacc.c  */
#line 6456 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_OPFAMILY;
					n->object = (yyvsp[(4) - (9)].list);
					n->subname = (yyvsp[(6) - (9)].str);
					n->newname = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 990:

/* Line 1455 of yacc.c  */
#line 6465 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_SCHEMA;
					n->subname = (yyvsp[(3) - (6)].str);
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 991:

/* Line 1455 of yacc.c  */
#line 6473 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_TABLE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 992:

/* Line 1455 of yacc.c  */
#line 6482 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_SEQUENCE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 993:

/* Line 1455 of yacc.c  */
#line 6491 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_VIEW;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 994:

/* Line 1455 of yacc.c  */
#line 6500 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_INDEX;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 995:

/* Line 1455 of yacc.c  */
#line 6509 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_FOREIGN_TABLE;
					n->relation = (yyvsp[(4) - (7)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 996:

/* Line 1455 of yacc.c  */
#line 6518 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_COLUMN;
					n->relationType = OBJECT_TABLE;
					n->relation = (yyvsp[(3) - (8)].range);
					n->subname = (yyvsp[(6) - (8)].str);
					n->newname = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 997:

/* Line 1455 of yacc.c  */
#line 6528 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_COLUMN;
					n->relationType = OBJECT_FOREIGN_TABLE;
					n->relation = (yyvsp[(4) - (9)].range);
					n->subname = (yyvsp[(7) - (9)].str);
					n->newname = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 998:

/* Line 1455 of yacc.c  */
#line 6538 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_TRIGGER;
					n->relation = (yyvsp[(5) - (8)].range);
					n->subname = (yyvsp[(3) - (8)].str);
					n->newname = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 999:

/* Line 1455 of yacc.c  */
#line 6547 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_ROLE;
					n->subname = (yyvsp[(3) - (6)].str);
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1000:

/* Line 1455 of yacc.c  */
#line 6555 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_ROLE;
					n->subname = (yyvsp[(3) - (6)].str);
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1001:

/* Line 1455 of yacc.c  */
#line 6563 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_TABLESPACE;
					n->subname = (yyvsp[(3) - (6)].str);
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1002:

/* Line 1455 of yacc.c  */
#line 6571 "gram.y"
    {
					AlterTableSpaceOptionsStmt *n =
						makeNode(AlterTableSpaceOptionsStmt);
					n->tablespacename = (yyvsp[(3) - (5)].str);
					n->options = (yyvsp[(5) - (5)].list);
					n->isReset = FALSE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1003:

/* Line 1455 of yacc.c  */
#line 6580 "gram.y"
    {
					AlterTableSpaceOptionsStmt *n =
						makeNode(AlterTableSpaceOptionsStmt);
					n->tablespacename = (yyvsp[(3) - (5)].str);
					n->options = (yyvsp[(5) - (5)].list);
					n->isReset = TRUE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1004:

/* Line 1455 of yacc.c  */
#line 6589 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_TSPARSER;
					n->object = (yyvsp[(5) - (8)].list);
					n->newname = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1005:

/* Line 1455 of yacc.c  */
#line 6597 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_TSDICTIONARY;
					n->object = (yyvsp[(5) - (8)].list);
					n->newname = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1006:

/* Line 1455 of yacc.c  */
#line 6605 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_TSTEMPLATE;
					n->object = (yyvsp[(5) - (8)].list);
					n->newname = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1007:

/* Line 1455 of yacc.c  */
#line 6613 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_TSCONFIGURATION;
					n->object = (yyvsp[(5) - (8)].list);
					n->newname = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1008:

/* Line 1455 of yacc.c  */
#line 6621 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_TYPE;
					n->object = (yyvsp[(3) - (6)].list);
					n->newname = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1009:

/* Line 1455 of yacc.c  */
#line 6629 "gram.y"
    {
					RenameStmt *n = makeNode(RenameStmt);
					n->renameType = OBJECT_ATTRIBUTE;
					n->relationType = OBJECT_TYPE;
					n->relation = makeRangeVarFromAnyName((yyvsp[(3) - (9)].list), (yylsp[(3) - (9)]), yyscanner);
					n->subname = (yyvsp[(6) - (9)].str);
					n->newname = (yyvsp[(8) - (9)].str);
					n->behavior = (yyvsp[(9) - (9)].dbehavior);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1010:

/* Line 1455 of yacc.c  */
#line 6641 "gram.y"
    { (yyval.ival) = COLUMN; ;}
    break;

  case 1011:

/* Line 1455 of yacc.c  */
#line 6642 "gram.y"
    { (yyval.ival) = 0; ;}
    break;

  case 1012:

/* Line 1455 of yacc.c  */
#line 6645 "gram.y"
    { (yyval.ival) = 1; ;}
    break;

  case 1013:

/* Line 1455 of yacc.c  */
#line 6646 "gram.y"
    { (yyval.ival) = 0; ;}
    break;

  case 1014:

/* Line 1455 of yacc.c  */
#line 6657 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_AGGREGATE;
					n->object = (yyvsp[(3) - (7)].list);
					n->objarg = (yyvsp[(4) - (7)].list);
					n->newschema = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1015:

/* Line 1455 of yacc.c  */
#line 6666 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_COLLATION;
					n->object = (yyvsp[(3) - (6)].list);
					n->newschema = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1016:

/* Line 1455 of yacc.c  */
#line 6674 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_CONVERSION;
					n->object = (yyvsp[(3) - (6)].list);
					n->newschema = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1017:

/* Line 1455 of yacc.c  */
#line 6682 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_DOMAIN;
					n->object = (yyvsp[(3) - (6)].list);
					n->newschema = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1018:

/* Line 1455 of yacc.c  */
#line 6690 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_EXTENSION;
					n->object = (yyvsp[(3) - (6)].list);
					n->newschema = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1019:

/* Line 1455 of yacc.c  */
#line 6698 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_FUNCTION;
					n->object = (yyvsp[(3) - (6)].funwithargs)->funcname;
					n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs;
					n->newschema = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1020:

/* Line 1455 of yacc.c  */
#line 6707 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_OPERATOR;
					n->object = (yyvsp[(3) - (7)].list);
					n->objarg = (yyvsp[(4) - (7)].list);
					n->newschema = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1021:

/* Line 1455 of yacc.c  */
#line 6716 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_OPCLASS;
					n->object = (yyvsp[(4) - (9)].list);
					n->addname = (yyvsp[(6) - (9)].str);
					n->newschema = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1022:

/* Line 1455 of yacc.c  */
#line 6725 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_OPFAMILY;
					n->object = (yyvsp[(4) - (9)].list);
					n->addname = (yyvsp[(6) - (9)].str);
					n->newschema = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1023:

/* Line 1455 of yacc.c  */
#line 6734 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_TABLE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->newschema = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1024:

/* Line 1455 of yacc.c  */
#line 6742 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_TSPARSER;
					n->object = (yyvsp[(5) - (8)].list);
					n->newschema = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1025:

/* Line 1455 of yacc.c  */
#line 6750 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_TSDICTIONARY;
					n->object = (yyvsp[(5) - (8)].list);
					n->newschema = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1026:

/* Line 1455 of yacc.c  */
#line 6758 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_TSTEMPLATE;
					n->object = (yyvsp[(5) - (8)].list);
					n->newschema = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1027:

/* Line 1455 of yacc.c  */
#line 6766 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_TSCONFIGURATION;
					n->object = (yyvsp[(5) - (8)].list);
					n->newschema = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1028:

/* Line 1455 of yacc.c  */
#line 6774 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_SEQUENCE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->newschema = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1029:

/* Line 1455 of yacc.c  */
#line 6782 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_VIEW;
					n->relation = (yyvsp[(3) - (6)].range);
					n->newschema = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1030:

/* Line 1455 of yacc.c  */
#line 6790 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_FOREIGN_TABLE;
					n->relation = (yyvsp[(4) - (7)].range);
					n->newschema = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1031:

/* Line 1455 of yacc.c  */
#line 6798 "gram.y"
    {
					AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
					n->objectType = OBJECT_TYPE;
					n->object = (yyvsp[(3) - (6)].list);
					n->newschema = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1032:

/* Line 1455 of yacc.c  */
#line 6814 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_AGGREGATE;
					n->object = (yyvsp[(3) - (7)].list);
					n->objarg = (yyvsp[(4) - (7)].list);
					n->newowner = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1033:

/* Line 1455 of yacc.c  */
#line 6823 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_COLLATION;
					n->object = (yyvsp[(3) - (6)].list);
					n->newowner = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1034:

/* Line 1455 of yacc.c  */
#line 6831 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_CONVERSION;
					n->object = (yyvsp[(3) - (6)].list);
					n->newowner = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1035:

/* Line 1455 of yacc.c  */
#line 6839 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_DATABASE;
					n->object = list_make1(makeString((yyvsp[(3) - (6)].str)));
					n->newowner = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1036:

/* Line 1455 of yacc.c  */
#line 6847 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_DOMAIN;
					n->object = (yyvsp[(3) - (6)].list);
					n->newowner = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1037:

/* Line 1455 of yacc.c  */
#line 6855 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_FUNCTION;
					n->object = (yyvsp[(3) - (6)].funwithargs)->funcname;
					n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs;
					n->newowner = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1038:

/* Line 1455 of yacc.c  */
#line 6864 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_LANGUAGE;
					n->object = list_make1(makeString((yyvsp[(4) - (7)].str)));
					n->newowner = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1039:

/* Line 1455 of yacc.c  */
#line 6872 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_LARGEOBJECT;
					n->object = list_make1((yyvsp[(4) - (7)].value));
					n->newowner = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1040:

/* Line 1455 of yacc.c  */
#line 6880 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_OPERATOR;
					n->object = (yyvsp[(3) - (7)].list);
					n->objarg = (yyvsp[(4) - (7)].list);
					n->newowner = (yyvsp[(7) - (7)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1041:

/* Line 1455 of yacc.c  */
#line 6889 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_OPCLASS;
					n->object = (yyvsp[(4) - (9)].list);
					n->addname = (yyvsp[(6) - (9)].str);
					n->newowner = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1042:

/* Line 1455 of yacc.c  */
#line 6898 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_OPFAMILY;
					n->object = (yyvsp[(4) - (9)].list);
					n->addname = (yyvsp[(6) - (9)].str);
					n->newowner = (yyvsp[(9) - (9)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1043:

/* Line 1455 of yacc.c  */
#line 6907 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_SCHEMA;
					n->object = list_make1(makeString((yyvsp[(3) - (6)].str)));
					n->newowner = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1044:

/* Line 1455 of yacc.c  */
#line 6915 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_TYPE;
					n->object = (yyvsp[(3) - (6)].list);
					n->newowner = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1045:

/* Line 1455 of yacc.c  */
#line 6923 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_TABLESPACE;
					n->object = list_make1(makeString((yyvsp[(3) - (6)].str)));
					n->newowner = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1046:

/* Line 1455 of yacc.c  */
#line 6931 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_TSDICTIONARY;
					n->object = (yyvsp[(5) - (8)].list);
					n->newowner = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1047:

/* Line 1455 of yacc.c  */
#line 6939 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_TSCONFIGURATION;
					n->object = (yyvsp[(5) - (8)].list);
					n->newowner = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1048:

/* Line 1455 of yacc.c  */
#line 6947 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_FDW;
					n->object = list_make1(makeString((yyvsp[(5) - (8)].str)));
					n->newowner = (yyvsp[(8) - (8)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1049:

/* Line 1455 of yacc.c  */
#line 6955 "gram.y"
    {
					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
					n->objectType = OBJECT_FOREIGN_SERVER;
					n->object = list_make1(makeString((yyvsp[(3) - (6)].str)));
					n->newowner = (yyvsp[(6) - (6)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1050:

/* Line 1455 of yacc.c  */
#line 6974 "gram.y"
    {
					RuleStmt *n = makeNode(RuleStmt);
					n->replace = (yyvsp[(2) - (13)].boolean);
					n->relation = (yyvsp[(9) - (13)].range);
					n->rulename = (yyvsp[(4) - (13)].str);
					n->whereClause = (yyvsp[(10) - (13)].node);
					n->event = (yyvsp[(7) - (13)].ival);
					n->instead = (yyvsp[(12) - (13)].boolean);
					n->actions = (yyvsp[(13) - (13)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1051:

/* Line 1455 of yacc.c  */
#line 6988 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1052:

/* Line 1455 of yacc.c  */
#line 6989 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1053:

/* Line 1455 of yacc.c  */
#line 6990 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 1054:

/* Line 1455 of yacc.c  */
#line 6996 "gram.y"
    { if ((yyvsp[(3) - (3)].node) != NULL)
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				  else
					(yyval.list) = (yyvsp[(1) - (3)].list);
				;}
    break;

  case 1055:

/* Line 1455 of yacc.c  */
#line 7002 "gram.y"
    { if ((yyvsp[(1) - (1)].node) != NULL)
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				  else
					(yyval.list) = NIL;
				;}
    break;

  case 1061:

/* Line 1455 of yacc.c  */
#line 7018 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1062:

/* Line 1455 of yacc.c  */
#line 7019 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1063:

/* Line 1455 of yacc.c  */
#line 7022 "gram.y"
    { (yyval.ival) = CMD_SELECT; ;}
    break;

  case 1064:

/* Line 1455 of yacc.c  */
#line 7023 "gram.y"
    { (yyval.ival) = CMD_UPDATE; ;}
    break;

  case 1065:

/* Line 1455 of yacc.c  */
#line 7024 "gram.y"
    { (yyval.ival) = CMD_DELETE; ;}
    break;

  case 1066:

/* Line 1455 of yacc.c  */
#line 7025 "gram.y"
    { (yyval.ival) = CMD_INSERT; ;}
    break;

  case 1067:

/* Line 1455 of yacc.c  */
#line 7029 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 1068:

/* Line 1455 of yacc.c  */
#line 7030 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1069:

/* Line 1455 of yacc.c  */
#line 7031 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1070:

/* Line 1455 of yacc.c  */
#line 7037 "gram.y"
    {
					DropPropertyStmt *n = makeNode(DropPropertyStmt);
					n->relation = (yyvsp[(5) - (6)].range);
					n->property = (yyvsp[(3) - (6)].str);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->removeType = OBJECT_RULE;
					n->missing_ok = false;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1071:

/* Line 1455 of yacc.c  */
#line 7047 "gram.y"
    {
					DropPropertyStmt *n = makeNode(DropPropertyStmt);
					n->relation = (yyvsp[(7) - (8)].range);
					n->property = (yyvsp[(5) - (8)].str);
					n->behavior = (yyvsp[(8) - (8)].dbehavior);
					n->removeType = OBJECT_RULE;
					n->missing_ok = true;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1072:

/* Line 1455 of yacc.c  */
#line 7068 "gram.y"
    {
					NotifyStmt *n = makeNode(NotifyStmt);
					n->conditionname = (yyvsp[(2) - (3)].str);
					n->payload = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1073:

/* Line 1455 of yacc.c  */
#line 7077 "gram.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 1074:

/* Line 1455 of yacc.c  */
#line 7078 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 1075:

/* Line 1455 of yacc.c  */
#line 7082 "gram.y"
    {
					ListenStmt *n = makeNode(ListenStmt);
					n->conditionname = (yyvsp[(2) - (2)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1076:

/* Line 1455 of yacc.c  */
#line 7091 "gram.y"
    {
					UnlistenStmt *n = makeNode(UnlistenStmt);
					n->conditionname = (yyvsp[(2) - (2)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1077:

/* Line 1455 of yacc.c  */
#line 7097 "gram.y"
    {
					UnlistenStmt *n = makeNode(UnlistenStmt);
					n->conditionname = NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1078:

/* Line 1455 of yacc.c  */
#line 7116 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_ROLLBACK;
					n->options = NIL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1079:

/* Line 1455 of yacc.c  */
#line 7123 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_BEGIN;
					n->options = (yyvsp[(3) - (3)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1080:

/* Line 1455 of yacc.c  */
#line 7130 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_START;
					n->options = (yyvsp[(3) - (3)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1081:

/* Line 1455 of yacc.c  */
#line 7137 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_COMMIT;
					n->options = NIL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1082:

/* Line 1455 of yacc.c  */
#line 7144 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_COMMIT;
					n->options = NIL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1083:

/* Line 1455 of yacc.c  */
#line 7151 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_ROLLBACK;
					n->options = NIL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1084:

/* Line 1455 of yacc.c  */
#line 7158 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_SAVEPOINT;
					n->options = list_make1(makeDefElem("savepoint_name",
														(Node *)makeString((yyvsp[(2) - (2)].str))));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1085:

/* Line 1455 of yacc.c  */
#line 7166 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_RELEASE;
					n->options = list_make1(makeDefElem("savepoint_name",
														(Node *)makeString((yyvsp[(3) - (3)].str))));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1086:

/* Line 1455 of yacc.c  */
#line 7174 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_RELEASE;
					n->options = list_make1(makeDefElem("savepoint_name",
														(Node *)makeString((yyvsp[(2) - (2)].str))));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1087:

/* Line 1455 of yacc.c  */
#line 7182 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_ROLLBACK_TO;
					n->options = list_make1(makeDefElem("savepoint_name",
														(Node *)makeString((yyvsp[(5) - (5)].str))));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1088:

/* Line 1455 of yacc.c  */
#line 7190 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_ROLLBACK_TO;
					n->options = list_make1(makeDefElem("savepoint_name",
														(Node *)makeString((yyvsp[(4) - (4)].str))));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1089:

/* Line 1455 of yacc.c  */
#line 7198 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_PREPARE;
					n->gid = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1090:

/* Line 1455 of yacc.c  */
#line 7205 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_COMMIT_PREPARED;
					n->gid = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1091:

/* Line 1455 of yacc.c  */
#line 7212 "gram.y"
    {
					TransactionStmt *n = makeNode(TransactionStmt);
					n->kind = TRANS_STMT_ROLLBACK_PREPARED;
					n->gid = (yyvsp[(3) - (3)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1092:

/* Line 1455 of yacc.c  */
#line 7220 "gram.y"
    {;}
    break;

  case 1093:

/* Line 1455 of yacc.c  */
#line 7221 "gram.y"
    {;}
    break;

  case 1094:

/* Line 1455 of yacc.c  */
#line 7222 "gram.y"
    {;}
    break;

  case 1095:

/* Line 1455 of yacc.c  */
#line 7227 "gram.y"
    { (yyval.defelt) = makeDefElem("transaction_isolation",
									   makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)]))); ;}
    break;

  case 1096:

/* Line 1455 of yacc.c  */
#line 7230 "gram.y"
    { (yyval.defelt) = makeDefElem("transaction_read_only",
									   makeIntConst(TRUE, (yylsp[(1) - (2)]))); ;}
    break;

  case 1097:

/* Line 1455 of yacc.c  */
#line 7233 "gram.y"
    { (yyval.defelt) = makeDefElem("transaction_read_only",
									   makeIntConst(FALSE, (yylsp[(1) - (2)]))); ;}
    break;

  case 1098:

/* Line 1455 of yacc.c  */
#line 7236 "gram.y"
    { (yyval.defelt) = makeDefElem("transaction_deferrable",
									   makeIntConst(TRUE, (yylsp[(1) - (1)]))); ;}
    break;

  case 1099:

/* Line 1455 of yacc.c  */
#line 7239 "gram.y"
    { (yyval.defelt) = makeDefElem("transaction_deferrable",
									   makeIntConst(FALSE, (yylsp[(1) - (2)]))); ;}
    break;

  case 1100:

/* Line 1455 of yacc.c  */
#line 7246 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 1101:

/* Line 1455 of yacc.c  */
#line 7248 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;}
    break;

  case 1102:

/* Line 1455 of yacc.c  */
#line 7250 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 1104:

/* Line 1455 of yacc.c  */
#line 7256 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1105:

/* Line 1455 of yacc.c  */
#line 7270 "gram.y"
    {
					ViewStmt *n = makeNode(ViewStmt);
					n->view = (yyvsp[(4) - (8)].range);
					n->view->relpersistence = (yyvsp[(2) - (8)].ival);
					n->aliases = (yyvsp[(5) - (8)].list);
					n->query = (yyvsp[(7) - (8)].node);
					n->replace = false;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1106:

/* Line 1455 of yacc.c  */
#line 7281 "gram.y"
    {
					ViewStmt *n = makeNode(ViewStmt);
					n->view = (yyvsp[(6) - (10)].range);
					n->view->relpersistence = (yyvsp[(4) - (10)].ival);
					n->aliases = (yyvsp[(7) - (10)].list);
					n->query = (yyvsp[(9) - (10)].node);
					n->replace = true;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1107:

/* Line 1455 of yacc.c  */
#line 7294 "gram.y"
    {
					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("WITH CHECK OPTION is not implemented")));
				;}
    break;

  case 1108:

/* Line 1455 of yacc.c  */
#line 7300 "gram.y"
    {
					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("WITH CHECK OPTION is not implemented")));
				;}
    break;

  case 1109:

/* Line 1455 of yacc.c  */
#line 7306 "gram.y"
    {
					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("WITH CHECK OPTION is not implemented")));
				;}
    break;

  case 1110:

/* Line 1455 of yacc.c  */
#line 7311 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1111:

/* Line 1455 of yacc.c  */
#line 7322 "gram.y"
    {
					LoadStmt *n = makeNode(LoadStmt);
					n->filename = (yyvsp[(2) - (2)].str);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1112:

/* Line 1455 of yacc.c  */
#line 7338 "gram.y"
    {
					CreatedbStmt *n = makeNode(CreatedbStmt);
					n->dbname = (yyvsp[(3) - (5)].str);
					n->options = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1113:

/* Line 1455 of yacc.c  */
#line 7347 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 1114:

/* Line 1455 of yacc.c  */
#line 7348 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1115:

/* Line 1455 of yacc.c  */
#line 7353 "gram.y"
    {
					(yyval.defelt) = makeDefElem("tablespace", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 1116:

/* Line 1455 of yacc.c  */
#line 7357 "gram.y"
    {
					(yyval.defelt) = makeDefElem("tablespace", NULL);
				;}
    break;

  case 1117:

/* Line 1455 of yacc.c  */
#line 7361 "gram.y"
    {
					(yyval.defelt) = makeDefElem("location", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 1118:

/* Line 1455 of yacc.c  */
#line 7365 "gram.y"
    {
					(yyval.defelt) = makeDefElem("location", NULL);
				;}
    break;

  case 1119:

/* Line 1455 of yacc.c  */
#line 7369 "gram.y"
    {
					(yyval.defelt) = makeDefElem("template", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 1120:

/* Line 1455 of yacc.c  */
#line 7373 "gram.y"
    {
					(yyval.defelt) = makeDefElem("template", NULL);
				;}
    break;

  case 1121:

/* Line 1455 of yacc.c  */
#line 7377 "gram.y"
    {
					(yyval.defelt) = makeDefElem("encoding", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 1122:

/* Line 1455 of yacc.c  */
#line 7381 "gram.y"
    {
					(yyval.defelt) = makeDefElem("encoding", (Node *)makeInteger((yyvsp[(3) - (3)].ival)));
				;}
    break;

  case 1123:

/* Line 1455 of yacc.c  */
#line 7385 "gram.y"
    {
					(yyval.defelt) = makeDefElem("encoding", NULL);
				;}
    break;

  case 1124:

/* Line 1455 of yacc.c  */
#line 7389 "gram.y"
    {
					(yyval.defelt) = makeDefElem("lc_collate", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 1125:

/* Line 1455 of yacc.c  */
#line 7393 "gram.y"
    {
					(yyval.defelt) = makeDefElem("lc_collate", NULL);
				;}
    break;

  case 1126:

/* Line 1455 of yacc.c  */
#line 7397 "gram.y"
    {
					(yyval.defelt) = makeDefElem("lc_ctype", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 1127:

/* Line 1455 of yacc.c  */
#line 7401 "gram.y"
    {
					(yyval.defelt) = makeDefElem("lc_ctype", NULL);
				;}
    break;

  case 1128:

/* Line 1455 of yacc.c  */
#line 7405 "gram.y"
    {
					(yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[(4) - (4)].ival)));
				;}
    break;

  case 1129:

/* Line 1455 of yacc.c  */
#line 7409 "gram.y"
    {
					(yyval.defelt) = makeDefElem("owner", (Node *)makeString((yyvsp[(3) - (3)].str)));
				;}
    break;

  case 1130:

/* Line 1455 of yacc.c  */
#line 7413 "gram.y"
    {
					(yyval.defelt) = makeDefElem("owner", NULL);
				;}
    break;

  case 1131:

/* Line 1455 of yacc.c  */
#line 7422 "gram.y"
    {;}
    break;

  case 1132:

/* Line 1455 of yacc.c  */
#line 7423 "gram.y"
    {;}
    break;

  case 1133:

/* Line 1455 of yacc.c  */
#line 7435 "gram.y"
    {
					AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
					n->dbname = (yyvsp[(3) - (5)].str);
					n->options = (yyvsp[(5) - (5)].list);
					(yyval.node) = (Node *)n;
				 ;}
    break;

  case 1134:

/* Line 1455 of yacc.c  */
#line 7442 "gram.y"
    {
					AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
					n->dbname = (yyvsp[(3) - (6)].str);
					n->options = list_make1(makeDefElem("tablespace",
													(Node *)makeString((yyvsp[(6) - (6)].str))));
					(yyval.node) = (Node *)n;
				 ;}
    break;

  case 1135:

/* Line 1455 of yacc.c  */
#line 7453 "gram.y"
    {
					AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt);
					n->dbname = (yyvsp[(3) - (4)].str);
					n->setstmt = (yyvsp[(4) - (4)].vsetstmt);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1136:

/* Line 1455 of yacc.c  */
#line 7463 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 1137:

/* Line 1455 of yacc.c  */
#line 7464 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1138:

/* Line 1455 of yacc.c  */
#line 7469 "gram.y"
    {
					(yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[(4) - (4)].ival)));
				;}
    break;

  case 1139:

/* Line 1455 of yacc.c  */
#line 7483 "gram.y"
    {
					DropdbStmt *n = makeNode(DropdbStmt);
					n->dbname = (yyvsp[(3) - (3)].str);
					n->missing_ok = FALSE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1140:

/* Line 1455 of yacc.c  */
#line 7490 "gram.y"
    {
					DropdbStmt *n = makeNode(DropdbStmt);
					n->dbname = (yyvsp[(5) - (5)].str);
					n->missing_ok = TRUE;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1141:

/* Line 1455 of yacc.c  */
#line 7507 "gram.y"
    {
					CreateDomainStmt *n = makeNode(CreateDomainStmt);
					n->domainname = (yyvsp[(3) - (6)].list);
					n->typeName = (yyvsp[(5) - (6)].typnam);
					SplitColQualList((yyvsp[(6) - (6)].list), &n->constraints, &n->collClause,
									 yyscanner);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1142:

/* Line 1455 of yacc.c  */
#line 7520 "gram.y"
    {
					AlterDomainStmt *n = makeNode(AlterDomainStmt);
					n->subtype = 'T';
					n->typeName = (yyvsp[(3) - (4)].list);
					n->def = (yyvsp[(4) - (4)].node);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1143:

/* Line 1455 of yacc.c  */
#line 7529 "gram.y"
    {
					AlterDomainStmt *n = makeNode(AlterDomainStmt);
					n->subtype = 'N';
					n->typeName = (yyvsp[(3) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1144:

/* Line 1455 of yacc.c  */
#line 7537 "gram.y"
    {
					AlterDomainStmt *n = makeNode(AlterDomainStmt);
					n->subtype = 'O';
					n->typeName = (yyvsp[(3) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1145:

/* Line 1455 of yacc.c  */
#line 7545 "gram.y"
    {
					AlterDomainStmt *n = makeNode(AlterDomainStmt);
					n->subtype = 'C';
					n->typeName = (yyvsp[(3) - (5)].list);
					n->def = (yyvsp[(5) - (5)].node);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1146:

/* Line 1455 of yacc.c  */
#line 7554 "gram.y"
    {
					AlterDomainStmt *n = makeNode(AlterDomainStmt);
					n->subtype = 'X';
					n->typeName = (yyvsp[(3) - (7)].list);
					n->name = (yyvsp[(6) - (7)].str);
					n->behavior = (yyvsp[(7) - (7)].dbehavior);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1147:

/* Line 1455 of yacc.c  */
#line 7564 "gram.y"
    {;}
    break;

  case 1148:

/* Line 1455 of yacc.c  */
#line 7565 "gram.y"
    {;}
    break;

  case 1149:

/* Line 1455 of yacc.c  */
#line 7577 "gram.y"
    {
					AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt);
					n->dictname = (yyvsp[(5) - (6)].list);
					n->options = (yyvsp[(6) - (6)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1150:

/* Line 1455 of yacc.c  */
#line 7587 "gram.y"
    {
					AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
					n->cfgname = (yyvsp[(5) - (11)].list);
					n->tokentype = (yyvsp[(9) - (11)].list);
					n->dicts = (yyvsp[(11) - (11)].list);
					n->override = false;
					n->replace = false;
					(yyval.node) = (Node*)n;
				;}
    break;

  case 1151:

/* Line 1455 of yacc.c  */
#line 7597 "gram.y"
    {
					AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
					n->cfgname = (yyvsp[(5) - (11)].list);
					n->tokentype = (yyvsp[(9) - (11)].list);
					n->dicts = (yyvsp[(11) - (11)].list);
					n->override = true;
					n->replace = false;
					(yyval.node) = (Node*)n;
				;}
    break;

  case 1152:

/* Line 1455 of yacc.c  */
#line 7607 "gram.y"
    {
					AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
					n->cfgname = (yyvsp[(5) - (11)].list);
					n->tokentype = NIL;
					n->dicts = list_make2((yyvsp[(9) - (11)].list),(yyvsp[(11) - (11)].list));
					n->override = false;
					n->replace = true;
					(yyval.node) = (Node*)n;
				;}
    break;

  case 1153:

/* Line 1455 of yacc.c  */
#line 7617 "gram.y"
    {
					AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
					n->cfgname = (yyvsp[(5) - (13)].list);
					n->tokentype = (yyvsp[(9) - (13)].list);
					n->dicts = list_make2((yyvsp[(11) - (13)].list),(yyvsp[(13) - (13)].list));
					n->override = false;
					n->replace = true;
					(yyval.node) = (Node*)n;
				;}
    break;

  case 1154:

/* Line 1455 of yacc.c  */
#line 7627 "gram.y"
    {
					AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
					n->cfgname = (yyvsp[(5) - (9)].list);
					n->tokentype = (yyvsp[(9) - (9)].list);
					n->missing_ok = false;
					(yyval.node) = (Node*)n;
				;}
    break;

  case 1155:

/* Line 1455 of yacc.c  */
#line 7635 "gram.y"
    {
					AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
					n->cfgname = (yyvsp[(5) - (11)].list);
					n->tokentype = (yyvsp[(11) - (11)].list);
					n->missing_ok = true;
					(yyval.node) = (Node*)n;
				;}
    break;

  case 1156:

/* Line 1455 of yacc.c  */
#line 7657 "gram.y"
    {
			  CreateConversionStmt *n = makeNode(CreateConversionStmt);
			  n->conversion_name = (yyvsp[(4) - (10)].list);
			  n->for_encoding_name = (yyvsp[(6) - (10)].str);
			  n->to_encoding_name = (yyvsp[(8) - (10)].str);
			  n->func_name = (yyvsp[(10) - (10)].list);
			  n->def = (yyvsp[(2) - (10)].boolean);
			  (yyval.node) = (Node *)n;
			;}
    break;

  case 1157:

/* Line 1455 of yacc.c  */
#line 7679 "gram.y"
    {
			       ClusterStmt *n = makeNode(ClusterStmt);
				   n->relation = (yyvsp[(3) - (4)].range);
				   n->indexname = (yyvsp[(4) - (4)].str);
				   n->verbose = (yyvsp[(2) - (4)].boolean);
				   (yyval.node) = (Node*)n;
				;}
    break;

  case 1158:

/* Line 1455 of yacc.c  */
#line 7687 "gram.y"
    {
				   ClusterStmt *n = makeNode(ClusterStmt);
				   n->relation = NULL;
				   n->indexname = NULL;
				   n->verbose = (yyvsp[(2) - (2)].boolean);
				   (yyval.node) = (Node*)n;
				;}
    break;

  case 1159:

/* Line 1455 of yacc.c  */
#line 7696 "gram.y"
    {
				   ClusterStmt *n = makeNode(ClusterStmt);
				   n->relation = (yyvsp[(5) - (5)].range);
				   n->indexname = (yyvsp[(3) - (5)].str);
				   n->verbose = (yyvsp[(2) - (5)].boolean);
				   (yyval.node) = (Node*)n;
				;}
    break;

  case 1160:

/* Line 1455 of yacc.c  */
#line 7706 "gram.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 1161:

/* Line 1455 of yacc.c  */
#line 7707 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 1162:

/* Line 1455 of yacc.c  */
#line 7720 "gram.y"
    {
					VacuumStmt *n = makeNode(VacuumStmt);
					n->options = VACOPT_VACUUM;
					if ((yyvsp[(2) - (4)].boolean))
						n->options |= VACOPT_FULL;
					if ((yyvsp[(4) - (4)].boolean))
						n->options |= VACOPT_VERBOSE;
					n->freeze_min_age = (yyvsp[(3) - (4)].boolean) ? 0 : -1;
					n->freeze_table_age = (yyvsp[(3) - (4)].boolean) ? 0 : -1;
					n->relation = NULL;
					n->va_cols = NIL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1163:

/* Line 1455 of yacc.c  */
#line 7734 "gram.y"
    {
					VacuumStmt *n = makeNode(VacuumStmt);
					n->options = VACOPT_VACUUM;
					if ((yyvsp[(2) - (5)].boolean))
						n->options |= VACOPT_FULL;
					if ((yyvsp[(4) - (5)].boolean))
						n->options |= VACOPT_VERBOSE;
					n->freeze_min_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1;
					n->freeze_table_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1;
					n->relation = (yyvsp[(5) - (5)].range);
					n->va_cols = NIL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1164:

/* Line 1455 of yacc.c  */
#line 7748 "gram.y"
    {
					VacuumStmt *n = (VacuumStmt *) (yyvsp[(5) - (5)].node);
					n->options |= VACOPT_VACUUM;
					if ((yyvsp[(2) - (5)].boolean))
						n->options |= VACOPT_FULL;
					if ((yyvsp[(4) - (5)].boolean))
						n->options |= VACOPT_VERBOSE;
					n->freeze_min_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1;
					n->freeze_table_age = (yyvsp[(3) - (5)].boolean) ? 0 : -1;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1165:

/* Line 1455 of yacc.c  */
#line 7760 "gram.y"
    {
					VacuumStmt *n = makeNode(VacuumStmt);
					n->options = VACOPT_VACUUM | (yyvsp[(3) - (4)].ival);
					if (n->options & VACOPT_FREEZE)
						n->freeze_min_age = n->freeze_table_age = 0;
					else
						n->freeze_min_age = n->freeze_table_age = -1;
					n->relation = NULL;
					n->va_cols = NIL;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1166:

/* Line 1455 of yacc.c  */
#line 7772 "gram.y"
    {
					VacuumStmt *n = makeNode(VacuumStmt);
					n->options = VACOPT_VACUUM | (yyvsp[(3) - (6)].ival);
					if (n->options & VACOPT_FREEZE)
						n->freeze_min_age = n->freeze_table_age = 0;
					else
						n->freeze_min_age = n->freeze_table_age = -1;
					n->relation = (yyvsp[(5) - (6)].range);
					n->va_cols = (yyvsp[(6) - (6)].list);
					if (n->va_cols != NIL)	/* implies analyze */
						n->options |= VACOPT_ANALYZE;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1167:

/* Line 1455 of yacc.c  */
#line 7788 "gram.y"
    { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
    break;

  case 1168:

/* Line 1455 of yacc.c  */
#line 7789 "gram.y"
    { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;}
    break;

  case 1169:

/* Line 1455 of yacc.c  */
#line 7793 "gram.y"
    { (yyval.ival) = VACOPT_ANALYZE; ;}
    break;

  case 1170:

/* Line 1455 of yacc.c  */
#line 7794 "gram.y"
    { (yyval.ival) = VACOPT_VERBOSE; ;}
    break;

  case 1171:

/* Line 1455 of yacc.c  */
#line 7795 "gram.y"
    { (yyval.ival) = VACOPT_FREEZE; ;}
    break;

  case 1172:

/* Line 1455 of yacc.c  */
#line 7796 "gram.y"
    { (yyval.ival) = VACOPT_FULL; ;}
    break;

  case 1173:

/* Line 1455 of yacc.c  */
#line 7801 "gram.y"
    {
					VacuumStmt *n = makeNode(VacuumStmt);
					n->options = VACOPT_ANALYZE;
					if ((yyvsp[(2) - (2)].boolean))
						n->options |= VACOPT_VERBOSE;
					n->freeze_min_age = -1;
					n->freeze_table_age = -1;
					n->relation = NULL;
					n->va_cols = NIL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1174:

/* Line 1455 of yacc.c  */
#line 7813 "gram.y"
    {
					VacuumStmt *n = makeNode(VacuumStmt);
					n->options = VACOPT_ANALYZE;
					if ((yyvsp[(2) - (4)].boolean))
						n->options |= VACOPT_VERBOSE;
					n->freeze_min_age = -1;
					n->freeze_table_age = -1;
					n->relation = (yyvsp[(3) - (4)].range);
					n->va_cols = (yyvsp[(4) - (4)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1175:

/* Line 1455 of yacc.c  */
#line 7827 "gram.y"
    {;}
    break;

  case 1176:

/* Line 1455 of yacc.c  */
#line 7828 "gram.y"
    {;}
    break;

  case 1177:

/* Line 1455 of yacc.c  */
#line 7832 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 1178:

/* Line 1455 of yacc.c  */
#line 7833 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1179:

/* Line 1455 of yacc.c  */
#line 7836 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 1180:

/* Line 1455 of yacc.c  */
#line 7837 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1181:

/* Line 1455 of yacc.c  */
#line 7840 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 1182:

/* Line 1455 of yacc.c  */
#line 7841 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1183:

/* Line 1455 of yacc.c  */
#line 7845 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 1184:

/* Line 1455 of yacc.c  */
#line 7846 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1185:

/* Line 1455 of yacc.c  */
#line 7860 "gram.y"
    {
					ExplainStmt *n = makeNode(ExplainStmt);
					n->query = (yyvsp[(2) - (2)].node);
					n->options = NIL;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1186:

/* Line 1455 of yacc.c  */
#line 7867 "gram.y"
    {
					ExplainStmt *n = makeNode(ExplainStmt);
					n->query = (yyvsp[(4) - (4)].node);
					n->options = list_make1(makeDefElem("analyze", NULL));
					if ((yyvsp[(3) - (4)].boolean))
						n->options = lappend(n->options,
											 makeDefElem("verbose", NULL));
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1187:

/* Line 1455 of yacc.c  */
#line 7877 "gram.y"
    {
					ExplainStmt *n = makeNode(ExplainStmt);
					n->query = (yyvsp[(3) - (3)].node);
					n->options = list_make1(makeDefElem("verbose", NULL));
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1188:

/* Line 1455 of yacc.c  */
#line 7884 "gram.y"
    {
					ExplainStmt *n = makeNode(ExplainStmt);
					n->query = (yyvsp[(5) - (5)].node);
					n->options = (yyvsp[(3) - (5)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1196:

/* Line 1455 of yacc.c  */
#line 7904 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
				;}
    break;

  case 1197:

/* Line 1455 of yacc.c  */
#line 7908 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
				;}
    break;

  case 1198:

/* Line 1455 of yacc.c  */
#line 7915 "gram.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node));
				;}
    break;

  case 1199:

/* Line 1455 of yacc.c  */
#line 7921 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1200:

/* Line 1455 of yacc.c  */
#line 7922 "gram.y"
    { (yyval.str) = "analyze"; ;}
    break;

  case 1201:

/* Line 1455 of yacc.c  */
#line 7923 "gram.y"
    { (yyval.str) = "verbose"; ;}
    break;

  case 1202:

/* Line 1455 of yacc.c  */
#line 7927 "gram.y"
    { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 1203:

/* Line 1455 of yacc.c  */
#line 7928 "gram.y"
    { (yyval.node) = (Node *) (yyvsp[(1) - (1)].value); ;}
    break;

  case 1204:

/* Line 1455 of yacc.c  */
#line 7929 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1205:

/* Line 1455 of yacc.c  */
#line 7940 "gram.y"
    {
					PrepareStmt *n = makeNode(PrepareStmt);
					n->name = (yyvsp[(2) - (5)].str);
					n->argtypes = (yyvsp[(3) - (5)].list);
					n->query = (yyvsp[(5) - (5)].node);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1206:

/* Line 1455 of yacc.c  */
#line 7949 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 1207:

/* Line 1455 of yacc.c  */
#line 7950 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1212:

/* Line 1455 of yacc.c  */
#line 7968 "gram.y"
    {
					ExecuteStmt *n = makeNode(ExecuteStmt);
					n->name = (yyvsp[(2) - (3)].str);
					n->params = (yyvsp[(3) - (3)].list);
					n->into = NULL;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1213:

/* Line 1455 of yacc.c  */
#line 7977 "gram.y"
    {
					ExecuteStmt *n = makeNode(ExecuteStmt);
					n->name = (yyvsp[(7) - (8)].str);
					n->params = (yyvsp[(8) - (8)].list);
					(yyvsp[(4) - (8)].into)->rel->relpersistence = (yyvsp[(2) - (8)].ival);
					n->into = (yyvsp[(4) - (8)].into);
					if ((yyvsp[(4) - (8)].into)->colNames)
						ereport(ERROR,
								(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("column name list not allowed in CREATE TABLE / AS EXECUTE")));
					/* ... because it's not implemented, but it could be */
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1214:

/* Line 1455 of yacc.c  */
#line 7992 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 1215:

/* Line 1455 of yacc.c  */
#line 7993 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1216:

/* Line 1455 of yacc.c  */
#line 8004 "gram.y"
    {
						DeallocateStmt *n = makeNode(DeallocateStmt);
						n->name = (yyvsp[(2) - (2)].str);
						(yyval.node) = (Node *) n;
					;}
    break;

  case 1217:

/* Line 1455 of yacc.c  */
#line 8010 "gram.y"
    {
						DeallocateStmt *n = makeNode(DeallocateStmt);
						n->name = (yyvsp[(3) - (3)].str);
						(yyval.node) = (Node *) n;
					;}
    break;

  case 1218:

/* Line 1455 of yacc.c  */
#line 8016 "gram.y"
    {
						DeallocateStmt *n = makeNode(DeallocateStmt);
						n->name = NULL;
						(yyval.node) = (Node *) n;
					;}
    break;

  case 1219:

/* Line 1455 of yacc.c  */
#line 8022 "gram.y"
    {
						DeallocateStmt *n = makeNode(DeallocateStmt);
						n->name = NULL;
						(yyval.node) = (Node *) n;
					;}
    break;

  case 1220:

/* Line 1455 of yacc.c  */
#line 8038 "gram.y"
    {
					(yyvsp[(5) - (6)].istmt)->relation = (yyvsp[(4) - (6)].range);
					(yyvsp[(5) - (6)].istmt)->returningList = (yyvsp[(6) - (6)].list);
					(yyvsp[(5) - (6)].istmt)->withClause = (yyvsp[(1) - (6)].with);
					(yyval.node) = (Node *) (yyvsp[(5) - (6)].istmt);
				;}
    break;

  case 1221:

/* Line 1455 of yacc.c  */
#line 8048 "gram.y"
    {
					(yyval.istmt) = makeNode(InsertStmt);
					(yyval.istmt)->cols = NIL;
					(yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node);
				;}
    break;

  case 1222:

/* Line 1455 of yacc.c  */
#line 8054 "gram.y"
    {
					(yyval.istmt) = makeNode(InsertStmt);
					(yyval.istmt)->cols = (yyvsp[(2) - (4)].list);
					(yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node);
				;}
    break;

  case 1223:

/* Line 1455 of yacc.c  */
#line 8060 "gram.y"
    {
					(yyval.istmt) = makeNode(InsertStmt);
					(yyval.istmt)->cols = NIL;
					(yyval.istmt)->selectStmt = NULL;
				;}
    break;

  case 1224:

/* Line 1455 of yacc.c  */
#line 8069 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
    break;

  case 1225:

/* Line 1455 of yacc.c  */
#line 8071 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
    break;

  case 1226:

/* Line 1455 of yacc.c  */
#line 8076 "gram.y"
    {
					(yyval.target) = makeNode(ResTarget);
					(yyval.target)->name = (yyvsp[(1) - (2)].str);
					(yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
					(yyval.target)->val = NULL;
					(yyval.target)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1227:

/* Line 1455 of yacc.c  */
#line 8086 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1228:

/* Line 1455 of yacc.c  */
#line 8087 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1229:

/* Line 1455 of yacc.c  */
#line 8100 "gram.y"
    {
					DeleteStmt *n = makeNode(DeleteStmt);
					n->relation = (yyvsp[(4) - (7)].range);
					n->usingClause = (yyvsp[(5) - (7)].list);
					n->whereClause = (yyvsp[(6) - (7)].node);
					n->returningList = (yyvsp[(7) - (7)].list);
					n->withClause = (yyvsp[(1) - (7)].with);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1230:

/* Line 1455 of yacc.c  */
#line 8112 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1231:

/* Line 1455 of yacc.c  */
#line 8113 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1232:

/* Line 1455 of yacc.c  */
#line 8125 "gram.y"
    {
					LockStmt *n = makeNode(LockStmt);

					n->relations = (yyvsp[(3) - (5)].list);
					n->mode = (yyvsp[(4) - (5)].ival);
					n->nowait = (yyvsp[(5) - (5)].boolean);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1233:

/* Line 1455 of yacc.c  */
#line 8135 "gram.y"
    { (yyval.ival) = (yyvsp[(2) - (3)].ival); ;}
    break;

  case 1234:

/* Line 1455 of yacc.c  */
#line 8136 "gram.y"
    { (yyval.ival) = AccessExclusiveLock; ;}
    break;

  case 1235:

/* Line 1455 of yacc.c  */
#line 8139 "gram.y"
    { (yyval.ival) = AccessShareLock; ;}
    break;

  case 1236:

/* Line 1455 of yacc.c  */
#line 8140 "gram.y"
    { (yyval.ival) = RowShareLock; ;}
    break;

  case 1237:

/* Line 1455 of yacc.c  */
#line 8141 "gram.y"
    { (yyval.ival) = RowExclusiveLock; ;}
    break;

  case 1238:

/* Line 1455 of yacc.c  */
#line 8142 "gram.y"
    { (yyval.ival) = ShareUpdateExclusiveLock; ;}
    break;

  case 1239:

/* Line 1455 of yacc.c  */
#line 8143 "gram.y"
    { (yyval.ival) = ShareLock; ;}
    break;

  case 1240:

/* Line 1455 of yacc.c  */
#line 8144 "gram.y"
    { (yyval.ival) = ShareRowExclusiveLock; ;}
    break;

  case 1241:

/* Line 1455 of yacc.c  */
#line 8145 "gram.y"
    { (yyval.ival) = ExclusiveLock; ;}
    break;

  case 1242:

/* Line 1455 of yacc.c  */
#line 8146 "gram.y"
    { (yyval.ival) = AccessExclusiveLock; ;}
    break;

  case 1243:

/* Line 1455 of yacc.c  */
#line 8149 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 1244:

/* Line 1455 of yacc.c  */
#line 8150 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1245:

/* Line 1455 of yacc.c  */
#line 8166 "gram.y"
    {
					UpdateStmt *n = makeNode(UpdateStmt);
					n->relation = (yyvsp[(3) - (8)].range);
					n->targetList = (yyvsp[(5) - (8)].list);
					n->fromClause = (yyvsp[(6) - (8)].list);
					n->whereClause = (yyvsp[(7) - (8)].node);
					n->returningList = (yyvsp[(8) - (8)].list);
					n->withClause = (yyvsp[(1) - (8)].with);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1246:

/* Line 1455 of yacc.c  */
#line 8179 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1247:

/* Line 1455 of yacc.c  */
#line 8180 "gram.y"
    { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); ;}
    break;

  case 1248:

/* Line 1455 of yacc.c  */
#line 8184 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
    break;

  case 1249:

/* Line 1455 of yacc.c  */
#line 8185 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1250:

/* Line 1455 of yacc.c  */
#line 8190 "gram.y"
    {
					(yyval.target) = (yyvsp[(1) - (3)].target);
					(yyval.target)->val = (Node *) (yyvsp[(3) - (3)].node);
				;}
    break;

  case 1251:

/* Line 1455 of yacc.c  */
#line 8198 "gram.y"
    {
					ListCell *col_cell;
					ListCell *val_cell;

					/*
					 * Break the ctext_row apart, merge individual expressions
					 * into the destination ResTargets.  XXX this approach
					 * cannot work for general row expressions as sources.
					 */
					if (list_length((yyvsp[(2) - (5)].list)) != list_length((yyvsp[(5) - (5)].list)))
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("number of columns does not match number of values"),
								 parser_errposition((yylsp[(1) - (5)]))));
					forboth(col_cell, (yyvsp[(2) - (5)].list), val_cell, (yyvsp[(5) - (5)].list))
					{
						ResTarget *res_col = (ResTarget *) lfirst(col_cell);
						Node *res_val = (Node *) lfirst(val_cell);

						res_col->val = res_val;
					}

					(yyval.list) = (yyvsp[(2) - (5)].list);
				;}
    break;

  case 1252:

/* Line 1455 of yacc.c  */
#line 8226 "gram.y"
    {
					(yyval.target) = makeNode(ResTarget);
					(yyval.target)->name = (yyvsp[(1) - (2)].str);
					(yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
					(yyval.target)->val = NULL;	/* upper production sets this */
					(yyval.target)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1253:

/* Line 1455 of yacc.c  */
#line 8236 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
    break;

  case 1254:

/* Line 1455 of yacc.c  */
#line 8237 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); ;}
    break;

  case 1255:

/* Line 1455 of yacc.c  */
#line 8248 "gram.y"
    {
					DeclareCursorStmt *n = makeNode(DeclareCursorStmt);
					n->portalname = (yyvsp[(2) - (7)].str);
					/* currently we always set FAST_PLAN option */
					n->options = (yyvsp[(3) - (7)].ival) | (yyvsp[(5) - (7)].ival) | CURSOR_OPT_FAST_PLAN;
					n->query = (yyvsp[(7) - (7)].node);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1256:

/* Line 1455 of yacc.c  */
#line 8258 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1257:

/* Line 1455 of yacc.c  */
#line 8261 "gram.y"
    { (yyval.ival) = 0; ;}
    break;

  case 1258:

/* Line 1455 of yacc.c  */
#line 8262 "gram.y"
    { (yyval.ival) = (yyvsp[(1) - (3)].ival) | CURSOR_OPT_NO_SCROLL; ;}
    break;

  case 1259:

/* Line 1455 of yacc.c  */
#line 8263 "gram.y"
    { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_SCROLL; ;}
    break;

  case 1260:

/* Line 1455 of yacc.c  */
#line 8264 "gram.y"
    { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_BINARY; ;}
    break;

  case 1261:

/* Line 1455 of yacc.c  */
#line 8265 "gram.y"
    { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_INSENSITIVE; ;}
    break;

  case 1262:

/* Line 1455 of yacc.c  */
#line 8268 "gram.y"
    { (yyval.ival) = 0; ;}
    break;

  case 1263:

/* Line 1455 of yacc.c  */
#line 8269 "gram.y"
    { (yyval.ival) = CURSOR_OPT_HOLD; ;}
    break;

  case 1264:

/* Line 1455 of yacc.c  */
#line 8270 "gram.y"
    { (yyval.ival) = 0; ;}
    break;

  case 1267:

/* Line 1455 of yacc.c  */
#line 8323 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
    break;

  case 1268:

/* Line 1455 of yacc.c  */
#line 8324 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
    break;

  case 1269:

/* Line 1455 of yacc.c  */
#line 8338 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1270:

/* Line 1455 of yacc.c  */
#line 8340 "gram.y"
    {
					insertSelectOptions((SelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL,
										NULL, NULL, NULL,
										yyscanner);
					(yyval.node) = (yyvsp[(1) - (2)].node);
				;}
    break;

  case 1271:

/* Line 1455 of yacc.c  */
#line 8347 "gram.y"
    {
					insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list),
										list_nth((yyvsp[(4) - (4)].list), 0), list_nth((yyvsp[(4) - (4)].list), 1),
										NULL,
										yyscanner);
					(yyval.node) = (yyvsp[(1) - (4)].node);
				;}
    break;

  case 1272:

/* Line 1455 of yacc.c  */
#line 8355 "gram.y"
    {
					insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list),
										list_nth((yyvsp[(3) - (4)].list), 0), list_nth((yyvsp[(3) - (4)].list), 1),
										NULL,
										yyscanner);
					(yyval.node) = (yyvsp[(1) - (4)].node);
				;}
    break;

  case 1273:

/* Line 1455 of yacc.c  */
#line 8363 "gram.y"
    {
					insertSelectOptions((SelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL,
										NULL, NULL,
										(yyvsp[(1) - (2)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (2)].node);
				;}
    break;

  case 1274:

/* Line 1455 of yacc.c  */
#line 8371 "gram.y"
    {
					insertSelectOptions((SelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL,
										NULL, NULL,
										(yyvsp[(1) - (3)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (3)].node);
				;}
    break;

  case 1275:

/* Line 1455 of yacc.c  */
#line 8379 "gram.y"
    {
					insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list),
										list_nth((yyvsp[(5) - (5)].list), 0), list_nth((yyvsp[(5) - (5)].list), 1),
										(yyvsp[(1) - (5)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (5)].node);
				;}
    break;

  case 1276:

/* Line 1455 of yacc.c  */
#line 8387 "gram.y"
    {
					insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list),
										list_nth((yyvsp[(4) - (5)].list), 0), list_nth((yyvsp[(4) - (5)].list), 1),
										(yyvsp[(1) - (5)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (5)].node);
				;}
    break;

  case 1277:

/* Line 1455 of yacc.c  */
#line 8397 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1278:

/* Line 1455 of yacc.c  */
#line 8398 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1279:

/* Line 1455 of yacc.c  */
#line 8428 "gram.y"
    {
					SelectStmt *n = makeNode(SelectStmt);
					n->distinctClause = (yyvsp[(2) - (9)].list);
					n->targetList = (yyvsp[(3) - (9)].list);
					n->intoClause = (yyvsp[(4) - (9)].into);
					n->fromClause = (yyvsp[(5) - (9)].list);
					n->whereClause = (yyvsp[(6) - (9)].node);
					n->groupClause = (yyvsp[(7) - (9)].list);
					n->havingClause = (yyvsp[(8) - (9)].node);
					n->windowClause = (yyvsp[(9) - (9)].list);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1280:

/* Line 1455 of yacc.c  */
#line 8440 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1281:

/* Line 1455 of yacc.c  */
#line 8442 "gram.y"
    {
					/* same as SELECT * FROM relation_expr */
					ColumnRef *cr = makeNode(ColumnRef);
					ResTarget *rt = makeNode(ResTarget);
					SelectStmt *n = makeNode(SelectStmt);

					cr->fields = list_make1(makeNode(A_Star));
					cr->location = -1;

					rt->name = NULL;
					rt->indirection = NIL;
					rt->val = (Node *)cr;
					rt->location = -1;

					n->targetList = list_make1(rt);
					n->fromClause = list_make1((yyvsp[(2) - (2)].range));
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1282:

/* Line 1455 of yacc.c  */
#line 8461 "gram.y"
    {
					(yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 1283:

/* Line 1455 of yacc.c  */
#line 8465 "gram.y"
    {
					(yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 1284:

/* Line 1455 of yacc.c  */
#line 8469 "gram.y"
    {
					(yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 1285:

/* Line 1455 of yacc.c  */
#line 8484 "gram.y"
    {
				(yyval.with) = makeNode(WithClause);
				(yyval.with)->ctes = (yyvsp[(2) - (2)].list);
				(yyval.with)->recursive = false;
				(yyval.with)->location = (yylsp[(1) - (2)]);
			;}
    break;

  case 1286:

/* Line 1455 of yacc.c  */
#line 8491 "gram.y"
    {
				(yyval.with) = makeNode(WithClause);
				(yyval.with)->ctes = (yyvsp[(3) - (3)].list);
				(yyval.with)->recursive = true;
				(yyval.with)->location = (yylsp[(1) - (3)]);
			;}
    break;

  case 1287:

/* Line 1455 of yacc.c  */
#line 8500 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1288:

/* Line 1455 of yacc.c  */
#line 8501 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 1289:

/* Line 1455 of yacc.c  */
#line 8505 "gram.y"
    {
				CommonTableExpr *n = makeNode(CommonTableExpr);
				n->ctename = (yyvsp[(1) - (6)].str);
				n->aliascolnames = (yyvsp[(2) - (6)].list);
				n->ctequery = (yyvsp[(5) - (6)].node);
				n->location = (yylsp[(1) - (6)]);
				(yyval.node) = (Node *) n;
			;}
    break;

  case 1290:

/* Line 1455 of yacc.c  */
#line 8516 "gram.y"
    { (yyval.with) = (yyvsp[(1) - (1)].with); ;}
    break;

  case 1291:

/* Line 1455 of yacc.c  */
#line 8517 "gram.y"
    { (yyval.with) = NULL; ;}
    break;

  case 1292:

/* Line 1455 of yacc.c  */
#line 8522 "gram.y"
    {
					(yyval.into) = makeNode(IntoClause);
					(yyval.into)->rel = (yyvsp[(2) - (2)].range);
					(yyval.into)->colNames = NIL;
					(yyval.into)->options = NIL;
					(yyval.into)->onCommit = ONCOMMIT_NOOP;
					(yyval.into)->tableSpaceName = NULL;
				;}
    break;

  case 1293:

/* Line 1455 of yacc.c  */
#line 8531 "gram.y"
    { (yyval.into) = NULL; ;}
    break;

  case 1294:

/* Line 1455 of yacc.c  */
#line 8540 "gram.y"
    {
					(yyval.range) = (yyvsp[(3) - (3)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
				;}
    break;

  case 1295:

/* Line 1455 of yacc.c  */
#line 8545 "gram.y"
    {
					(yyval.range) = (yyvsp[(3) - (3)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
				;}
    break;

  case 1296:

/* Line 1455 of yacc.c  */
#line 8550 "gram.y"
    {
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
				;}
    break;

  case 1297:

/* Line 1455 of yacc.c  */
#line 8555 "gram.y"
    {
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
				;}
    break;

  case 1298:

/* Line 1455 of yacc.c  */
#line 8560 "gram.y"
    {
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
				;}
    break;

  case 1299:

/* Line 1455 of yacc.c  */
#line 8565 "gram.y"
    {
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
				;}
    break;

  case 1300:

/* Line 1455 of yacc.c  */
#line 8570 "gram.y"
    {
					(yyval.range) = (yyvsp[(3) - (3)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED;
				;}
    break;

  case 1301:

/* Line 1455 of yacc.c  */
#line 8575 "gram.y"
    {
					(yyval.range) = (yyvsp[(2) - (2)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
				;}
    break;

  case 1302:

/* Line 1455 of yacc.c  */
#line 8580 "gram.y"
    {
					(yyval.range) = (yyvsp[(1) - (1)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
				;}
    break;

  case 1303:

/* Line 1455 of yacc.c  */
#line 8586 "gram.y"
    {;}
    break;

  case 1304:

/* Line 1455 of yacc.c  */
#line 8587 "gram.y"
    {;}
    break;

  case 1305:

/* Line 1455 of yacc.c  */
#line 8590 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 1306:

/* Line 1455 of yacc.c  */
#line 8591 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1307:

/* Line 1455 of yacc.c  */
#line 8592 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1308:

/* Line 1455 of yacc.c  */
#line 8599 "gram.y"
    { (yyval.list) = list_make1(NIL); ;}
    break;

  case 1309:

/* Line 1455 of yacc.c  */
#line 8600 "gram.y"
    { (yyval.list) = (yyvsp[(4) - (5)].list); ;}
    break;

  case 1310:

/* Line 1455 of yacc.c  */
#line 8601 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1311:

/* Line 1455 of yacc.c  */
#line 8602 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1312:

/* Line 1455 of yacc.c  */
#line 8606 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list);;}
    break;

  case 1313:

/* Line 1455 of yacc.c  */
#line 8607 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1314:

/* Line 1455 of yacc.c  */
#line 8611 "gram.y"
    { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
    break;

  case 1315:

/* Line 1455 of yacc.c  */
#line 8615 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;}
    break;

  case 1316:

/* Line 1455 of yacc.c  */
#line 8616 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); ;}
    break;

  case 1317:

/* Line 1455 of yacc.c  */
#line 8620 "gram.y"
    {
					(yyval.sortby) = makeNode(SortBy);
					(yyval.sortby)->node = (yyvsp[(1) - (4)].node);
					(yyval.sortby)->sortby_dir = SORTBY_USING;
					(yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].ival);
					(yyval.sortby)->useOp = (yyvsp[(3) - (4)].list);
					(yyval.sortby)->location = (yylsp[(3) - (4)]);
				;}
    break;

  case 1318:

/* Line 1455 of yacc.c  */
#line 8629 "gram.y"
    {
					(yyval.sortby) = makeNode(SortBy);
					(yyval.sortby)->node = (yyvsp[(1) - (3)].node);
					(yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].ival);
					(yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].ival);
					(yyval.sortby)->useOp = NIL;
					(yyval.sortby)->location = -1;		/* no operator */
				;}
    break;

  case 1319:

/* Line 1455 of yacc.c  */
#line 8641 "gram.y"
    { (yyval.list) = list_make2((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); ;}
    break;

  case 1320:

/* Line 1455 of yacc.c  */
#line 8642 "gram.y"
    { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 1321:

/* Line 1455 of yacc.c  */
#line 8643 "gram.y"
    { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (1)].node)); ;}
    break;

  case 1322:

/* Line 1455 of yacc.c  */
#line 8644 "gram.y"
    { (yyval.list) = list_make2((yyvsp[(1) - (1)].node), NULL); ;}
    break;

  case 1323:

/* Line 1455 of yacc.c  */
#line 8648 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1324:

/* Line 1455 of yacc.c  */
#line 8649 "gram.y"
    { (yyval.list) = list_make2(NULL,NULL); ;}
    break;

  case 1325:

/* Line 1455 of yacc.c  */
#line 8654 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1326:

/* Line 1455 of yacc.c  */
#line 8656 "gram.y"
    {
					/* Disabled because it was too confusing, bjm 2002-02-18 */
					ereport(ERROR,
							(errcode(ERRCODE_SYNTAX_ERROR),
							 errmsg("LIMIT #,# syntax is not supported"),
							 errhint("Use separate LIMIT and OFFSET clauses."),
							 parser_errposition((yylsp[(1) - (4)]))));
				;}
    break;

  case 1327:

/* Line 1455 of yacc.c  */
#line 8666 "gram.y"
    { (yyval.node) = (yyvsp[(3) - (5)].node); ;}
    break;

  case 1328:

/* Line 1455 of yacc.c  */
#line 8671 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1329:

/* Line 1455 of yacc.c  */
#line 8674 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
    break;

  case 1330:

/* Line 1455 of yacc.c  */
#line 8678 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1331:

/* Line 1455 of yacc.c  */
#line 8680 "gram.y"
    {
					/* LIMIT ALL is represented as a NULL constant */
					(yyval.node) = makeNullAConst((yylsp[(1) - (1)]));
				;}
    break;

  case 1332:

/* Line 1455 of yacc.c  */
#line 8687 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1333:

/* Line 1455 of yacc.c  */
#line 8697 "gram.y"
    { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;}
    break;

  case 1334:

/* Line 1455 of yacc.c  */
#line 8698 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
    break;

  case 1335:

/* Line 1455 of yacc.c  */
#line 8699 "gram.y"
    { (yyval.node) = makeIntConst(1, -1); ;}
    break;

  case 1336:

/* Line 1455 of yacc.c  */
#line 8707 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1337:

/* Line 1455 of yacc.c  */
#line 8711 "gram.y"
    { (yyval.ival) = 0; ;}
    break;

  case 1338:

/* Line 1455 of yacc.c  */
#line 8712 "gram.y"
    { (yyval.ival) = 0; ;}
    break;

  case 1339:

/* Line 1455 of yacc.c  */
#line 8715 "gram.y"
    { (yyval.ival) = 0; ;}
    break;

  case 1340:

/* Line 1455 of yacc.c  */
#line 8716 "gram.y"
    { (yyval.ival) = 0; ;}
    break;

  case 1341:

/* Line 1455 of yacc.c  */
#line 8721 "gram.y"
    { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
    break;

  case 1342:

/* Line 1455 of yacc.c  */
#line 8722 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1343:

/* Line 1455 of yacc.c  */
#line 8726 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1344:

/* Line 1455 of yacc.c  */
#line 8727 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1345:

/* Line 1455 of yacc.c  */
#line 8731 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1346:

/* Line 1455 of yacc.c  */
#line 8732 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1347:

/* Line 1455 of yacc.c  */
#line 8736 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1348:

/* Line 1455 of yacc.c  */
#line 8737 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1349:

/* Line 1455 of yacc.c  */
#line 8741 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1350:

/* Line 1455 of yacc.c  */
#line 8742 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 1351:

/* Line 1455 of yacc.c  */
#line 8747 "gram.y"
    {
					LockingClause *n = makeNode(LockingClause);
					n->lockedRels = (yyvsp[(3) - (4)].list);
					n->forUpdate = TRUE;
					n->noWait = (yyvsp[(4) - (4)].boolean);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1352:

/* Line 1455 of yacc.c  */
#line 8755 "gram.y"
    {
					LockingClause *n = makeNode(LockingClause);
					n->lockedRels = (yyvsp[(3) - (4)].list);
					n->forUpdate = FALSE;
					n->noWait = (yyvsp[(4) - (4)].boolean);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1353:

/* Line 1455 of yacc.c  */
#line 8765 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1354:

/* Line 1455 of yacc.c  */
#line 8766 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1355:

/* Line 1455 of yacc.c  */
#line 8772 "gram.y"
    {
					SelectStmt *n = makeNode(SelectStmt);
					n->valuesLists = list_make1((yyvsp[(2) - (2)].list));
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1356:

/* Line 1455 of yacc.c  */
#line 8778 "gram.y"
    {
					SelectStmt *n = (SelectStmt *) (yyvsp[(1) - (3)].node);
					n->valuesLists = lappend(n->valuesLists, (yyvsp[(3) - (3)].list));
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1357:

/* Line 1455 of yacc.c  */
#line 8795 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1358:

/* Line 1455 of yacc.c  */
#line 8796 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1359:

/* Line 1455 of yacc.c  */
#line 8800 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1360:

/* Line 1455 of yacc.c  */
#line 8801 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 1361:

/* Line 1455 of yacc.c  */
#line 8812 "gram.y"
    {
					(yyval.node) = (Node *) (yyvsp[(1) - (1)].range);
				;}
    break;

  case 1362:

/* Line 1455 of yacc.c  */
#line 8816 "gram.y"
    {
					(yyvsp[(1) - (2)].range)->alias = (yyvsp[(2) - (2)].alias);
					(yyval.node) = (Node *) (yyvsp[(1) - (2)].range);
				;}
    break;

  case 1363:

/* Line 1455 of yacc.c  */
#line 8821 "gram.y"
    {
					RangeFunction *n = makeNode(RangeFunction);
					n->funccallnode = (yyvsp[(1) - (1)].node);
					n->coldeflist = NIL;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1364:

/* Line 1455 of yacc.c  */
#line 8828 "gram.y"
    {
					RangeFunction *n = makeNode(RangeFunction);
					n->funccallnode = (yyvsp[(1) - (2)].node);
					n->alias = (yyvsp[(2) - (2)].alias);
					n->coldeflist = NIL;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1365:

/* Line 1455 of yacc.c  */
#line 8836 "gram.y"
    {
					RangeFunction *n = makeNode(RangeFunction);
					n->funccallnode = (yyvsp[(1) - (5)].node);
					n->coldeflist = (yyvsp[(4) - (5)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1366:

/* Line 1455 of yacc.c  */
#line 8843 "gram.y"
    {
					RangeFunction *n = makeNode(RangeFunction);
					Alias *a = makeNode(Alias);
					n->funccallnode = (yyvsp[(1) - (6)].node);
					a->aliasname = (yyvsp[(3) - (6)].str);
					n->alias = a;
					n->coldeflist = (yyvsp[(5) - (6)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1367:

/* Line 1455 of yacc.c  */
#line 8853 "gram.y"
    {
					RangeFunction *n = makeNode(RangeFunction);
					Alias *a = makeNode(Alias);
					n->funccallnode = (yyvsp[(1) - (5)].node);
					a->aliasname = (yyvsp[(2) - (5)].str);
					n->alias = a;
					n->coldeflist = (yyvsp[(4) - (5)].list);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1368:

/* Line 1455 of yacc.c  */
#line 8863 "gram.y"
    {
					/*
					 * The SQL spec does not permit a subselect
					 * (<derived_table>) without an alias clause,
					 * so we don't either.  This avoids the problem
					 * of needing to invent a unique refname for it.
					 * That could be surmounted if there's sufficient
					 * popular demand, but for now let's just implement
					 * the spec and see if anyone complains.
					 * However, it does seem like a good idea to emit
					 * an error message that's better than "syntax error".
					 */
					if (IsA((yyvsp[(1) - (1)].node), SelectStmt) &&
						((SelectStmt *) (yyvsp[(1) - (1)].node))->valuesLists)
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("VALUES in FROM must have an alias"),
								 errhint("For example, FROM (VALUES ...) [AS] foo."),
								 parser_errposition((yylsp[(1) - (1)]))));
					else
						ereport(ERROR,
								(errcode(ERRCODE_SYNTAX_ERROR),
								 errmsg("subquery in FROM must have an alias"),
								 errhint("For example, FROM (SELECT ...) [AS] foo."),
								 parser_errposition((yylsp[(1) - (1)]))));
					(yyval.node) = NULL;
				;}
    break;

  case 1369:

/* Line 1455 of yacc.c  */
#line 8891 "gram.y"
    {
					RangeSubselect *n = makeNode(RangeSubselect);
					n->subquery = (yyvsp[(1) - (2)].node);
					n->alias = (yyvsp[(2) - (2)].alias);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1370:

/* Line 1455 of yacc.c  */
#line 8898 "gram.y"
    {
					(yyval.node) = (Node *) (yyvsp[(1) - (1)].jexpr);
				;}
    break;

  case 1371:

/* Line 1455 of yacc.c  */
#line 8902 "gram.y"
    {
					(yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias);
					(yyval.node) = (Node *) (yyvsp[(2) - (4)].jexpr);
				;}
    break;

  case 1372:

/* Line 1455 of yacc.c  */
#line 8928 "gram.y"
    {
					(yyval.jexpr) = (yyvsp[(2) - (3)].jexpr);
				;}
    break;

  case 1373:

/* Line 1455 of yacc.c  */
#line 8932 "gram.y"
    {
					/* CROSS JOIN is same as unqualified inner join */
					JoinExpr *n = makeNode(JoinExpr);
					n->jointype = JOIN_INNER;
					n->isNatural = FALSE;
					n->larg = (yyvsp[(1) - (4)].node);
					n->rarg = (yyvsp[(4) - (4)].node);
					n->usingClause = NIL;
					n->quals = NULL;
					(yyval.jexpr) = n;
				;}
    break;

  case 1374:

/* Line 1455 of yacc.c  */
#line 8944 "gram.y"
    {
					JoinExpr *n = makeNode(JoinExpr);
					n->jointype = (yyvsp[(2) - (5)].jtype);
					n->isNatural = FALSE;
					n->larg = (yyvsp[(1) - (5)].node);
					n->rarg = (yyvsp[(4) - (5)].node);
					if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), List))
						n->usingClause = (List *) (yyvsp[(5) - (5)].node); /* USING clause */
					else
						n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
					(yyval.jexpr) = n;
				;}
    break;

  case 1375:

/* Line 1455 of yacc.c  */
#line 8957 "gram.y"
    {
					/* letting join_type reduce to empty doesn't work */
					JoinExpr *n = makeNode(JoinExpr);
					n->jointype = JOIN_INNER;
					n->isNatural = FALSE;
					n->larg = (yyvsp[(1) - (4)].node);
					n->rarg = (yyvsp[(3) - (4)].node);
					if ((yyvsp[(4) - (4)].node) != NULL && IsA((yyvsp[(4) - (4)].node), List))
						n->usingClause = (List *) (yyvsp[(4) - (4)].node); /* USING clause */
					else
						n->quals = (yyvsp[(4) - (4)].node); /* ON clause */
					(yyval.jexpr) = n;
				;}
    break;

  case 1376:

/* Line 1455 of yacc.c  */
#line 8971 "gram.y"
    {
					JoinExpr *n = makeNode(JoinExpr);
					n->jointype = (yyvsp[(3) - (5)].jtype);
					n->isNatural = TRUE;
					n->larg = (yyvsp[(1) - (5)].node);
					n->rarg = (yyvsp[(5) - (5)].node);
					n->usingClause = NIL; /* figure out which columns later... */
					n->quals = NULL; /* fill later */
					(yyval.jexpr) = n;
				;}
    break;

  case 1377:

/* Line 1455 of yacc.c  */
#line 8982 "gram.y"
    {
					/* letting join_type reduce to empty doesn't work */
					JoinExpr *n = makeNode(JoinExpr);
					n->jointype = JOIN_INNER;
					n->isNatural = TRUE;
					n->larg = (yyvsp[(1) - (4)].node);
					n->rarg = (yyvsp[(4) - (4)].node);
					n->usingClause = NIL; /* figure out which columns later... */
					n->quals = NULL; /* fill later */
					(yyval.jexpr) = n;
				;}
    break;

  case 1378:

/* Line 1455 of yacc.c  */
#line 8997 "gram.y"
    {
					(yyval.alias) = makeNode(Alias);
					(yyval.alias)->aliasname = (yyvsp[(2) - (5)].str);
					(yyval.alias)->colnames = (yyvsp[(4) - (5)].list);
				;}
    break;

  case 1379:

/* Line 1455 of yacc.c  */
#line 9003 "gram.y"
    {
					(yyval.alias) = makeNode(Alias);
					(yyval.alias)->aliasname = (yyvsp[(2) - (2)].str);
				;}
    break;

  case 1380:

/* Line 1455 of yacc.c  */
#line 9008 "gram.y"
    {
					(yyval.alias) = makeNode(Alias);
					(yyval.alias)->aliasname = (yyvsp[(1) - (4)].str);
					(yyval.alias)->colnames = (yyvsp[(3) - (4)].list);
				;}
    break;

  case 1381:

/* Line 1455 of yacc.c  */
#line 9014 "gram.y"
    {
					(yyval.alias) = makeNode(Alias);
					(yyval.alias)->aliasname = (yyvsp[(1) - (1)].str);
				;}
    break;

  case 1382:

/* Line 1455 of yacc.c  */
#line 9020 "gram.y"
    { (yyval.jtype) = JOIN_FULL; ;}
    break;

  case 1383:

/* Line 1455 of yacc.c  */
#line 9021 "gram.y"
    { (yyval.jtype) = JOIN_LEFT; ;}
    break;

  case 1384:

/* Line 1455 of yacc.c  */
#line 9022 "gram.y"
    { (yyval.jtype) = JOIN_RIGHT; ;}
    break;

  case 1385:

/* Line 1455 of yacc.c  */
#line 9023 "gram.y"
    { (yyval.jtype) = JOIN_INNER; ;}
    break;

  case 1386:

/* Line 1455 of yacc.c  */
#line 9027 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1387:

/* Line 1455 of yacc.c  */
#line 9028 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1388:

/* Line 1455 of yacc.c  */
#line 9040 "gram.y"
    { (yyval.node) = (Node *) (yyvsp[(3) - (4)].list); ;}
    break;

  case 1389:

/* Line 1455 of yacc.c  */
#line 9041 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1390:

/* Line 1455 of yacc.c  */
#line 9047 "gram.y"
    {
					/* default inheritance */
					(yyval.range) = (yyvsp[(1) - (1)].range);
					(yyval.range)->inhOpt = INH_DEFAULT;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 1391:

/* Line 1455 of yacc.c  */
#line 9054 "gram.y"
    {
					/* inheritance query */
					(yyval.range) = (yyvsp[(1) - (2)].range);
					(yyval.range)->inhOpt = INH_YES;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 1392:

/* Line 1455 of yacc.c  */
#line 9061 "gram.y"
    {
					/* no inheritance */
					(yyval.range) = (yyvsp[(2) - (2)].range);
					(yyval.range)->inhOpt = INH_NO;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 1393:

/* Line 1455 of yacc.c  */
#line 9068 "gram.y"
    {
					/* no inheritance, SQL99-style syntax */
					(yyval.range) = (yyvsp[(3) - (4)].range);
					(yyval.range)->inhOpt = INH_NO;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 1394:

/* Line 1455 of yacc.c  */
#line 9078 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;}
    break;

  case 1395:

/* Line 1455 of yacc.c  */
#line 9079 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;}
    break;

  case 1396:

/* Line 1455 of yacc.c  */
#line 9093 "gram.y"
    {
					(yyval.range) = (yyvsp[(1) - (1)].range);
				;}
    break;

  case 1397:

/* Line 1455 of yacc.c  */
#line 9097 "gram.y"
    {
					Alias *alias = makeNode(Alias);
					alias->aliasname = (yyvsp[(2) - (2)].str);
					(yyvsp[(1) - (2)].range)->alias = alias;
					(yyval.range) = (yyvsp[(1) - (2)].range);
				;}
    break;

  case 1398:

/* Line 1455 of yacc.c  */
#line 9104 "gram.y"
    {
					Alias *alias = makeNode(Alias);
					alias->aliasname = (yyvsp[(3) - (3)].str);
					(yyvsp[(1) - (3)].range)->alias = alias;
					(yyval.range) = (yyvsp[(1) - (3)].range);
				;}
    break;

  case 1399:

/* Line 1455 of yacc.c  */
#line 9113 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1400:

/* Line 1455 of yacc.c  */
#line 9118 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1401:

/* Line 1455 of yacc.c  */
#line 9119 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1402:

/* Line 1455 of yacc.c  */
#line 9124 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1403:

/* Line 1455 of yacc.c  */
#line 9126 "gram.y"
    {
					CurrentOfExpr *n = makeNode(CurrentOfExpr);
					/* cvarno is filled in by parse analysis */
					n->cursor_name = (yyvsp[(4) - (4)].str);
					n->cursor_param = 0;
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1404:

/* Line 1455 of yacc.c  */
#line 9133 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1405:

/* Line 1455 of yacc.c  */
#line 9138 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1406:

/* Line 1455 of yacc.c  */
#line 9139 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1407:

/* Line 1455 of yacc.c  */
#line 9144 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 1408:

/* Line 1455 of yacc.c  */
#line 9148 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1409:

/* Line 1455 of yacc.c  */
#line 9154 "gram.y"
    {
					ColumnDef *n = makeNode(ColumnDef);
					n->colname = (yyvsp[(1) - (3)].str);
					n->typeName = (yyvsp[(2) - (3)].typnam);
					n->inhcount = 0;
					n->is_local = true;
					n->is_not_null = false;
					n->is_from_type = false;
					n->storage = 0;
					n->raw_default = NULL;
					n->cooked_default = NULL;
					n->collClause = (CollateClause *) (yyvsp[(3) - (3)].node);
					n->collOid = InvalidOid;
					n->constraints = NIL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1410:

/* Line 1455 of yacc.c  */
#line 9183 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
					(yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list);
				;}
    break;

  case 1411:

/* Line 1455 of yacc.c  */
#line 9188 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (3)].typnam);
					(yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list);
					(yyval.typnam)->setof = TRUE;
				;}
    break;

  case 1412:

/* Line 1455 of yacc.c  */
#line 9195 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (5)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival)));
				;}
    break;

  case 1413:

/* Line 1455 of yacc.c  */
#line 9200 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (6)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival)));
					(yyval.typnam)->setof = TRUE;
				;}
    break;

  case 1414:

/* Line 1455 of yacc.c  */
#line 9206 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
				;}
    break;

  case 1415:

/* Line 1455 of yacc.c  */
#line 9211 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (3)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
					(yyval.typnam)->setof = TRUE;
				;}
    break;

  case 1416:

/* Line 1455 of yacc.c  */
#line 9220 "gram.y"
    {  (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;}
    break;

  case 1417:

/* Line 1455 of yacc.c  */
#line 9222 "gram.y"
    {  (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;}
    break;

  case 1418:

/* Line 1455 of yacc.c  */
#line 9224 "gram.y"
    {  (yyval.list) = NIL; ;}
    break;

  case 1419:

/* Line 1455 of yacc.c  */
#line 9228 "gram.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 1420:

/* Line 1455 of yacc.c  */
#line 9229 "gram.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 1421:

/* Line 1455 of yacc.c  */
#line 9230 "gram.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 1422:

/* Line 1455 of yacc.c  */
#line 9231 "gram.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 1423:

/* Line 1455 of yacc.c  */
#line 9232 "gram.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 1424:

/* Line 1455 of yacc.c  */
#line 9234 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
				;}
    break;

  case 1425:

/* Line 1455 of yacc.c  */
#line 9239 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (5)].typnam);
					if ((yyvsp[(5) - (5)].list) != NIL)
					{
						if (list_length((yyvsp[(5) - (5)].list)) != 1)
							ereport(ERROR,
									(errcode(ERRCODE_SYNTAX_ERROR),
									 errmsg("interval precision specified twice"),
									 parser_errposition((yylsp[(1) - (5)]))));
						(yyval.typnam)->typmods = lappend((yyvsp[(5) - (5)].list), makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
					}
					else
						(yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
												 makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
				;}
    break;

  case 1426:

/* Line 1455 of yacc.c  */
#line 9268 "gram.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 1427:

/* Line 1455 of yacc.c  */
#line 9269 "gram.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 1428:

/* Line 1455 of yacc.c  */
#line 9270 "gram.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 1429:

/* Line 1455 of yacc.c  */
#line 9271 "gram.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 1430:

/* Line 1455 of yacc.c  */
#line 9283 "gram.y"
    {
					(yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str));
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1431:

/* Line 1455 of yacc.c  */
#line 9289 "gram.y"
    {
					(yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(2) - (3)].list)));
					(yyval.typnam)->typmods = (yyvsp[(3) - (3)].list);
					(yyval.typnam)->location = (yylsp[(1) - (3)]);
				;}
    break;

  case 1432:

/* Line 1455 of yacc.c  */
#line 9296 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 1433:

/* Line 1455 of yacc.c  */
#line 9297 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1434:

/* Line 1455 of yacc.c  */
#line 9304 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("int4");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1435:

/* Line 1455 of yacc.c  */
#line 9309 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("int4");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1436:

/* Line 1455 of yacc.c  */
#line 9314 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("int2");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1437:

/* Line 1455 of yacc.c  */
#line 9319 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("int8");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1438:

/* Line 1455 of yacc.c  */
#line 9324 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("float4");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1439:

/* Line 1455 of yacc.c  */
#line 9329 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (2)].typnam);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1440:

/* Line 1455 of yacc.c  */
#line 9334 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("float8");
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1441:

/* Line 1455 of yacc.c  */
#line 9339 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("numeric");
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1442:

/* Line 1455 of yacc.c  */
#line 9345 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("numeric");
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1443:

/* Line 1455 of yacc.c  */
#line 9351 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("numeric");
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1444:

/* Line 1455 of yacc.c  */
#line 9357 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("bool");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1445:

/* Line 1455 of yacc.c  */
#line 9364 "gram.y"
    {
					/*
					 * Check FLOAT() precision limits assuming IEEE floating
					 * types - thomas 1997-09-18
					 */
					if ((yyvsp[(2) - (3)].ival) < 1)
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("precision for type float must be at least 1 bit"),
								 parser_errposition((yylsp[(2) - (3)]))));
					else if ((yyvsp[(2) - (3)].ival) <= 24)
						(yyval.typnam) = SystemTypeName("float4");
					else if ((yyvsp[(2) - (3)].ival) <= 53)
						(yyval.typnam) = SystemTypeName("float8");
					else
						ereport(ERROR,
								(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("precision for type float must be less than 54 bits"),
								 parser_errposition((yylsp[(2) - (3)]))));
				;}
    break;

  case 1446:

/* Line 1455 of yacc.c  */
#line 9385 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("float8");
				;}
    break;

  case 1447:

/* Line 1455 of yacc.c  */
#line 9395 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 1448:

/* Line 1455 of yacc.c  */
#line 9399 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 1449:

/* Line 1455 of yacc.c  */
#line 9407 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 1450:

/* Line 1455 of yacc.c  */
#line 9411 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
					(yyval.typnam)->typmods = NIL;
				;}
    break;

  case 1451:

/* Line 1455 of yacc.c  */
#line 9419 "gram.y"
    {
					char *typname;

					typname = (yyvsp[(2) - (5)].boolean) ? "varbit" : "bit";
					(yyval.typnam) = SystemTypeName(typname);
					(yyval.typnam)->typmods = (yyvsp[(4) - (5)].list);
					(yyval.typnam)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 1452:

/* Line 1455 of yacc.c  */
#line 9431 "gram.y"
    {
					/* bit defaults to bit(1), varbit to no limit */
					if ((yyvsp[(2) - (2)].boolean))
					{
						(yyval.typnam) = SystemTypeName("varbit");
					}
					else
					{
						(yyval.typnam) = SystemTypeName("bit");
						(yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
					}
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1453:

/* Line 1455 of yacc.c  */
#line 9452 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 1454:

/* Line 1455 of yacc.c  */
#line 9456 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 1455:

/* Line 1455 of yacc.c  */
#line 9462 "gram.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 1456:

/* Line 1455 of yacc.c  */
#line 9466 "gram.y"
    {
					/* Length was not specified so allow to be unrestricted.
					 * This handles problems with fixed-length (bpchar) strings
					 * which in column definitions must default to a length
					 * of one, but should not be constrained if the length
					 * was not specified.
					 */
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
					(yyval.typnam)->typmods = NIL;
				;}
    break;

  case 1457:

/* Line 1455 of yacc.c  */
#line 9479 "gram.y"
    {
					if (((yyvsp[(5) - (5)].str) != NULL) && (strcmp((yyvsp[(5) - (5)].str), "sql_text") != 0))
					{
						char *type;

						type = palloc(strlen((yyvsp[(1) - (5)].str)) + 1 + strlen((yyvsp[(5) - (5)].str)) + 1);
						strcpy(type, (yyvsp[(1) - (5)].str));
						strcat(type, "_");
						strcat(type, (yyvsp[(5) - (5)].str));
						(yyvsp[(1) - (5)].str) = type;
					}

					(yyval.typnam) = SystemTypeName((yyvsp[(1) - (5)].str));
					(yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
					(yyval.typnam)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 1458:

/* Line 1455 of yacc.c  */
#line 9498 "gram.y"
    {
					if (((yyvsp[(2) - (2)].str) != NULL) && (strcmp((yyvsp[(2) - (2)].str), "sql_text") != 0))
					{
						char *type;

						type = palloc(strlen((yyvsp[(1) - (2)].str)) + 1 + strlen((yyvsp[(2) - (2)].str)) + 1);
						strcpy(type, (yyvsp[(1) - (2)].str));
						strcat(type, "_");
						strcat(type, (yyvsp[(2) - (2)].str));
						(yyvsp[(1) - (2)].str) = type;
					}

					(yyval.typnam) = SystemTypeName((yyvsp[(1) - (2)].str));

					/* char defaults to char(1), varchar to no limit */
					if (strcmp((yyvsp[(1) - (2)].str), "bpchar") == 0)
						(yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));

					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1459:

/* Line 1455 of yacc.c  */
#line 9521 "gram.y"
    { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 1460:

/* Line 1455 of yacc.c  */
#line 9523 "gram.y"
    { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 1461:

/* Line 1455 of yacc.c  */
#line 9525 "gram.y"
    { (yyval.str) = "varchar"; ;}
    break;

  case 1462:

/* Line 1455 of yacc.c  */
#line 9527 "gram.y"
    { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 1463:

/* Line 1455 of yacc.c  */
#line 9529 "gram.y"
    { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 1464:

/* Line 1455 of yacc.c  */
#line 9531 "gram.y"
    { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 1465:

/* Line 1455 of yacc.c  */
#line 9535 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 1466:

/* Line 1455 of yacc.c  */
#line 9536 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1467:

/* Line 1455 of yacc.c  */
#line 9540 "gram.y"
    { (yyval.str) = (yyvsp[(3) - (3)].str); ;}
    break;

  case 1468:

/* Line 1455 of yacc.c  */
#line 9541 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 1469:

/* Line 1455 of yacc.c  */
#line 9549 "gram.y"
    {
					if ((yyvsp[(5) - (5)].boolean))
						(yyval.typnam) = SystemTypeName("timestamptz");
					else
						(yyval.typnam) = SystemTypeName("timestamp");
					(yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
					(yyval.typnam)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 1470:

/* Line 1455 of yacc.c  */
#line 9558 "gram.y"
    {
					if ((yyvsp[(2) - (2)].boolean))
						(yyval.typnam) = SystemTypeName("timestamptz");
					else
						(yyval.typnam) = SystemTypeName("timestamp");
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1471:

/* Line 1455 of yacc.c  */
#line 9566 "gram.y"
    {
					if ((yyvsp[(5) - (5)].boolean))
						(yyval.typnam) = SystemTypeName("timetz");
					else
						(yyval.typnam) = SystemTypeName("time");
					(yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
					(yyval.typnam)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 1472:

/* Line 1455 of yacc.c  */
#line 9575 "gram.y"
    {
					if ((yyvsp[(2) - (2)].boolean))
						(yyval.typnam) = SystemTypeName("timetz");
					else
						(yyval.typnam) = SystemTypeName("time");
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1473:

/* Line 1455 of yacc.c  */
#line 9586 "gram.y"
    {
					(yyval.typnam) = SystemTypeName("interval");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1474:

/* Line 1455 of yacc.c  */
#line 9593 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 1475:

/* Line 1455 of yacc.c  */
#line 9594 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1476:

/* Line 1455 of yacc.c  */
#line 9595 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1477:

/* Line 1455 of yacc.c  */
#line 9600 "gram.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;}
    break;

  case 1478:

/* Line 1455 of yacc.c  */
#line 9602 "gram.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;}
    break;

  case 1479:

/* Line 1455 of yacc.c  */
#line 9604 "gram.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;}
    break;

  case 1480:

/* Line 1455 of yacc.c  */
#line 9606 "gram.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;}
    break;

  case 1481:

/* Line 1455 of yacc.c  */
#line 9608 "gram.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;}
    break;

  case 1482:

/* Line 1455 of yacc.c  */
#line 9610 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1483:

/* Line 1455 of yacc.c  */
#line 9612 "gram.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
												 INTERVAL_MASK(MONTH), (yylsp[(1) - (3)])));
				;}
    break;

  case 1484:

/* Line 1455 of yacc.c  */
#line 9617 "gram.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
												 INTERVAL_MASK(HOUR), (yylsp[(1) - (3)])));
				;}
    break;

  case 1485:

/* Line 1455 of yacc.c  */
#line 9622 "gram.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
												 INTERVAL_MASK(HOUR) |
												 INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
				;}
    break;

  case 1486:

/* Line 1455 of yacc.c  */
#line 9628 "gram.y"
    {
					(yyval.list) = (yyvsp[(3) - (3)].list);
					linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) |
												INTERVAL_MASK(HOUR) |
												INTERVAL_MASK(MINUTE) |
												INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]));
				;}
    break;

  case 1487:

/* Line 1455 of yacc.c  */
#line 9636 "gram.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
												 INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
				;}
    break;

  case 1488:

/* Line 1455 of yacc.c  */
#line 9641 "gram.y"
    {
					(yyval.list) = (yyvsp[(3) - (3)].list);
					linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) |
												INTERVAL_MASK(MINUTE) |
												INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]));
				;}
    break;

  case 1489:

/* Line 1455 of yacc.c  */
#line 9648 "gram.y"
    {
					(yyval.list) = (yyvsp[(3) - (3)].list);
					linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) |
												INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]));
				;}
    break;

  case 1490:

/* Line 1455 of yacc.c  */
#line 9654 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1491:

/* Line 1455 of yacc.c  */
#line 9659 "gram.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)])));
				;}
    break;

  case 1492:

/* Line 1455 of yacc.c  */
#line 9663 "gram.y"
    {
					(yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (4)])),
									makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
				;}
    break;

  case 1493:

/* Line 1455 of yacc.c  */
#line 9692 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1494:

/* Line 1455 of yacc.c  */
#line 9694 "gram.y"
    { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;}
    break;

  case 1495:

/* Line 1455 of yacc.c  */
#line 9696 "gram.y"
    {
					CollateClause *n = makeNode(CollateClause);
					n->arg = (yyvsp[(1) - (3)].node);
					n->collname = (yyvsp[(3) - (3)].list);
					n->location = (yylsp[(2) - (3)]);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1496:

/* Line 1455 of yacc.c  */
#line 9704 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("timezone");
					n->args = list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(2) - (5)]);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1497:

/* Line 1455 of yacc.c  */
#line 9726 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 1498:

/* Line 1455 of yacc.c  */
#line 9728 "gram.y"
    { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 1499:

/* Line 1455 of yacc.c  */
#line 9730 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1500:

/* Line 1455 of yacc.c  */
#line 9732 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1501:

/* Line 1455 of yacc.c  */
#line 9734 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1502:

/* Line 1455 of yacc.c  */
#line 9736 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1503:

/* Line 1455 of yacc.c  */
#line 9738 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1504:

/* Line 1455 of yacc.c  */
#line 9740 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1505:

/* Line 1455 of yacc.c  */
#line 9742 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1506:

/* Line 1455 of yacc.c  */
#line 9744 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1507:

/* Line 1455 of yacc.c  */
#line 9746 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1508:

/* Line 1455 of yacc.c  */
#line 9749 "gram.y"
    { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1509:

/* Line 1455 of yacc.c  */
#line 9751 "gram.y"
    { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 1510:

/* Line 1455 of yacc.c  */
#line 9753 "gram.y"
    { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;}
    break;

  case 1511:

/* Line 1455 of yacc.c  */
#line 9756 "gram.y"
    { (yyval.node) = (Node *) makeA_Expr(AEXPR_AND, NIL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1512:

/* Line 1455 of yacc.c  */
#line 9758 "gram.y"
    { (yyval.node) = (Node *) makeA_Expr(AEXPR_OR, NIL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1513:

/* Line 1455 of yacc.c  */
#line 9760 "gram.y"
    { (yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 1514:

/* Line 1455 of yacc.c  */
#line 9763 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1515:

/* Line 1455 of yacc.c  */
#line 9765 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("like_escape");
					n->args = list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(2) - (5)]);
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)]));
				;}
    break;

  case 1516:

/* Line 1455 of yacc.c  */
#line 9778 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); ;}
    break;

  case 1517:

/* Line 1455 of yacc.c  */
#line 9780 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("like_escape");
					n->args = list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(2) - (6)]);
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)]));
				;}
    break;

  case 1518:

/* Line 1455 of yacc.c  */
#line 9793 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1519:

/* Line 1455 of yacc.c  */
#line 9795 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("like_escape");
					n->args = list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(2) - (5)]);
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)]));
				;}
    break;

  case 1520:

/* Line 1455 of yacc.c  */
#line 9808 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); ;}
    break;

  case 1521:

/* Line 1455 of yacc.c  */
#line 9810 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("like_escape");
					n->args = list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(2) - (6)]);
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)]));
				;}
    break;

  case 1522:

/* Line 1455 of yacc.c  */
#line 9824 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("similar_escape");
					n->args = list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(2) - (4)]);
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", (yyvsp[(1) - (4)].node), (Node *) n, (yylsp[(2) - (4)]));
				;}
    break;

  case 1523:

/* Line 1455 of yacc.c  */
#line 9837 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("similar_escape");
					n->args = list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(2) - (6)]);
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)]));
				;}
    break;

  case 1524:

/* Line 1455 of yacc.c  */
#line 9850 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("similar_escape");
					n->args = list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(2) - (5)]);
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)]));
				;}
    break;

  case 1525:

/* Line 1455 of yacc.c  */
#line 9863 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("similar_escape");
					n->args = list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(2) - (7)]);
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", (yyvsp[(1) - (7)].node), (Node *) n, (yylsp[(2) - (7)]));
				;}
    break;

  case 1526:

/* Line 1455 of yacc.c  */
#line 9886 "gram.y"
    {
					NullTest *n = makeNode(NullTest);
					n->arg = (Expr *) (yyvsp[(1) - (3)].node);
					n->nulltesttype = IS_NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1527:

/* Line 1455 of yacc.c  */
#line 9893 "gram.y"
    {
					NullTest *n = makeNode(NullTest);
					n->arg = (Expr *) (yyvsp[(1) - (2)].node);
					n->nulltesttype = IS_NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1528:

/* Line 1455 of yacc.c  */
#line 9900 "gram.y"
    {
					NullTest *n = makeNode(NullTest);
					n->arg = (Expr *) (yyvsp[(1) - (4)].node);
					n->nulltesttype = IS_NOT_NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1529:

/* Line 1455 of yacc.c  */
#line 9907 "gram.y"
    {
					NullTest *n = makeNode(NullTest);
					n->arg = (Expr *) (yyvsp[(1) - (2)].node);
					n->nulltesttype = IS_NOT_NULL;
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1530:

/* Line 1455 of yacc.c  */
#line 9914 "gram.y"
    {
					(yyval.node) = (Node *)makeOverlaps((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list), (yylsp[(2) - (3)]), yyscanner);
				;}
    break;

  case 1531:

/* Line 1455 of yacc.c  */
#line 9918 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) (yyvsp[(1) - (3)].node);
					b->booltesttype = IS_TRUE;
					(yyval.node) = (Node *)b;
				;}
    break;

  case 1532:

/* Line 1455 of yacc.c  */
#line 9925 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) (yyvsp[(1) - (4)].node);
					b->booltesttype = IS_NOT_TRUE;
					(yyval.node) = (Node *)b;
				;}
    break;

  case 1533:

/* Line 1455 of yacc.c  */
#line 9932 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) (yyvsp[(1) - (3)].node);
					b->booltesttype = IS_FALSE;
					(yyval.node) = (Node *)b;
				;}
    break;

  case 1534:

/* Line 1455 of yacc.c  */
#line 9939 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) (yyvsp[(1) - (4)].node);
					b->booltesttype = IS_NOT_FALSE;
					(yyval.node) = (Node *)b;
				;}
    break;

  case 1535:

/* Line 1455 of yacc.c  */
#line 9946 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) (yyvsp[(1) - (3)].node);
					b->booltesttype = IS_UNKNOWN;
					(yyval.node) = (Node *)b;
				;}
    break;

  case 1536:

/* Line 1455 of yacc.c  */
#line 9953 "gram.y"
    {
					BooleanTest *b = makeNode(BooleanTest);
					b->arg = (Expr *) (yyvsp[(1) - (4)].node);
					b->booltesttype = IS_NOT_UNKNOWN;
					(yyval.node) = (Node *)b;
				;}
    break;

  case 1537:

/* Line 1455 of yacc.c  */
#line 9960 "gram.y"
    {
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
				;}
    break;

  case 1538:

/* Line 1455 of yacc.c  */
#line 9964 "gram.y"
    {
					(yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL,
									(Node *) makeSimpleA_Expr(AEXPR_DISTINCT,
															  "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])),
											 (yylsp[(2) - (6)]));

				;}
    break;

  case 1539:

/* Line 1455 of yacc.c  */
#line 9972 "gram.y"
    {
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (Node *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)]));
				;}
    break;

  case 1540:

/* Line 1455 of yacc.c  */
#line 9976 "gram.y"
    {
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (Node *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)]));
				;}
    break;

  case 1541:

/* Line 1455 of yacc.c  */
#line 9986 "gram.y"
    {
					(yyval.node) = (Node *) makeA_Expr(AEXPR_AND, NIL,
						(Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yylsp[(2) - (6)])),
						(Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])),
											 (yylsp[(2) - (6)]));
				;}
    break;

  case 1542:

/* Line 1455 of yacc.c  */
#line 9993 "gram.y"
    {
					(yyval.node) = (Node *) makeA_Expr(AEXPR_OR, NIL,
						(Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (7)].node), (yyvsp[(5) - (7)].node), (yylsp[(2) - (7)])),
						(Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (7)].node), (yyvsp[(7) - (7)].node), (yylsp[(2) - (7)])),
											 (yylsp[(2) - (7)]));
				;}
    break;

  case 1543:

/* Line 1455 of yacc.c  */
#line 10000 "gram.y"
    {
					(yyval.node) = (Node *) makeA_Expr(AEXPR_OR, NIL,
						(Node *) makeA_Expr(AEXPR_AND, NIL,
						    (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yylsp[(2) - (6)])),
						    (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])),
											(yylsp[(2) - (6)])),
						(Node *) makeA_Expr(AEXPR_AND, NIL,
						    (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])),
						    (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yylsp[(2) - (6)])),
											(yylsp[(2) - (6)])),
											 (yylsp[(2) - (6)]));
				;}
    break;

  case 1544:

/* Line 1455 of yacc.c  */
#line 10013 "gram.y"
    {
					(yyval.node) = (Node *) makeA_Expr(AEXPR_AND, NIL,
						(Node *) makeA_Expr(AEXPR_OR, NIL,
						    (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (7)].node), (yyvsp[(5) - (7)].node), (yylsp[(2) - (7)])),
						    (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (7)].node), (yyvsp[(7) - (7)].node), (yylsp[(2) - (7)])),
											(yylsp[(2) - (7)])),
						(Node *) makeA_Expr(AEXPR_OR, NIL,
						    (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (7)].node), (yyvsp[(7) - (7)].node), (yylsp[(2) - (7)])),
						    (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (7)].node), (yyvsp[(5) - (7)].node), (yylsp[(2) - (7)])),
											(yylsp[(2) - (7)])),
											 (yylsp[(2) - (7)]));
				;}
    break;

  case 1545:

/* Line 1455 of yacc.c  */
#line 10026 "gram.y"
    {
					/* in_expr returns a SubLink or a list of a_exprs */
					if (IsA((yyvsp[(3) - (3)].node), SubLink))
					{
						/* generate foo = ANY (subquery) */
						SubLink *n = (SubLink *) (yyvsp[(3) - (3)].node);
						n->subLinkType = ANY_SUBLINK;
						n->testexpr = (yyvsp[(1) - (3)].node);
						n->operName = list_make1(makeString("="));
						n->location = (yylsp[(2) - (3)]);
						(yyval.node) = (Node *)n;
					}
					else
					{
						/* generate scalar IN expression */
						(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
					}
				;}
    break;

  case 1546:

/* Line 1455 of yacc.c  */
#line 10045 "gram.y"
    {
					/* in_expr returns a SubLink or a list of a_exprs */
					if (IsA((yyvsp[(4) - (4)].node), SubLink))
					{
						/* generate NOT (foo = ANY (subquery)) */
						/* Make an = ANY node */
						SubLink *n = (SubLink *) (yyvsp[(4) - (4)].node);
						n->subLinkType = ANY_SUBLINK;
						n->testexpr = (yyvsp[(1) - (4)].node);
						n->operName = list_make1(makeString("="));
						n->location = (yylsp[(3) - (4)]);
						/* Stick a NOT on top */
						(yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (Node *) n, (yylsp[(2) - (4)]));
					}
					else
					{
						/* generate scalar NOT IN expression */
						(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "<>", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
					}
				;}
    break;

  case 1547:

/* Line 1455 of yacc.c  */
#line 10066 "gram.y"
    {
					SubLink *n = makeNode(SubLink);
					n->subLinkType = (yyvsp[(3) - (4)].ival);
					n->testexpr = (yyvsp[(1) - (4)].node);
					n->operName = (yyvsp[(2) - (4)].list);
					n->subselect = (yyvsp[(4) - (4)].node);
					n->location = (yylsp[(2) - (4)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1548:

/* Line 1455 of yacc.c  */
#line 10076 "gram.y"
    {
					if ((yyvsp[(3) - (6)].ival) == ANY_SUBLINK)
						(yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)]));
					else
						(yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ALL, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)]));
				;}
    break;

  case 1549:

/* Line 1455 of yacc.c  */
#line 10083 "gram.y"
    {
					/* Not sure how to get rid of the parentheses
					 * but there are lots of shift/reduce errors without them.
					 *
					 * Should be able to implement this by plopping the entire
					 * select into a node, then transforming the target expressions
					 * from whatever they are into count(*), and testing the
					 * entire result equal to one.
					 * But, will probably implement a separate node in the executor.
					 */
					ereport(ERROR,
							(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
							 errmsg("UNIQUE predicate is not yet implemented"),
							 parser_errposition((yylsp[(1) - (2)]))));
				;}
    break;

  case 1550:

/* Line 1455 of yacc.c  */
#line 10099 "gram.y"
    {
					(yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
									 list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)]));
				;}
    break;

  case 1551:

/* Line 1455 of yacc.c  */
#line 10104 "gram.y"
    {
					(yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL,
											 makeXmlExpr(IS_DOCUMENT, NULL, NIL,
														 list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])),
											 (yylsp[(2) - (4)]));
				;}
    break;

  case 1552:

/* Line 1455 of yacc.c  */
#line 10122 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1553:

/* Line 1455 of yacc.c  */
#line 10124 "gram.y"
    { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;}
    break;

  case 1554:

/* Line 1455 of yacc.c  */
#line 10126 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 1555:

/* Line 1455 of yacc.c  */
#line 10128 "gram.y"
    { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 1556:

/* Line 1455 of yacc.c  */
#line 10130 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1557:

/* Line 1455 of yacc.c  */
#line 10132 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1558:

/* Line 1455 of yacc.c  */
#line 10134 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1559:

/* Line 1455 of yacc.c  */
#line 10136 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1560:

/* Line 1455 of yacc.c  */
#line 10138 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1561:

/* Line 1455 of yacc.c  */
#line 10140 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1562:

/* Line 1455 of yacc.c  */
#line 10142 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1563:

/* Line 1455 of yacc.c  */
#line 10144 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1564:

/* Line 1455 of yacc.c  */
#line 10146 "gram.y"
    { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1565:

/* Line 1455 of yacc.c  */
#line 10148 "gram.y"
    { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 1566:

/* Line 1455 of yacc.c  */
#line 10150 "gram.y"
    { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 1567:

/* Line 1455 of yacc.c  */
#line 10152 "gram.y"
    { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;}
    break;

  case 1568:

/* Line 1455 of yacc.c  */
#line 10154 "gram.y"
    {
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
				;}
    break;

  case 1569:

/* Line 1455 of yacc.c  */
#line 10158 "gram.y"
    {
					(yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL,
						NULL, (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])), (yylsp[(2) - (6)]));
				;}
    break;

  case 1570:

/* Line 1455 of yacc.c  */
#line 10163 "gram.y"
    {
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (Node *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)]));
				;}
    break;

  case 1571:

/* Line 1455 of yacc.c  */
#line 10167 "gram.y"
    {
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (Node *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)]));
				;}
    break;

  case 1572:

/* Line 1455 of yacc.c  */
#line 10171 "gram.y"
    {
					(yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
									 list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)]));
				;}
    break;

  case 1573:

/* Line 1455 of yacc.c  */
#line 10176 "gram.y"
    {
					(yyval.node) = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL,
											 makeXmlExpr(IS_DOCUMENT, NULL, NIL,
														 list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])),
											 (yylsp[(2) - (4)]));
				;}
    break;

  case 1574:

/* Line 1455 of yacc.c  */
#line 10192 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1575:

/* Line 1455 of yacc.c  */
#line 10193 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1576:

/* Line 1455 of yacc.c  */
#line 10195 "gram.y"
    {
					ParamRef *p = makeNode(ParamRef);
					p->number = (yyvsp[(1) - (2)].ival);
					p->location = (yylsp[(1) - (2)]);
					if ((yyvsp[(2) - (2)].list))
					{
						A_Indirection *n = makeNode(A_Indirection);
						n->arg = (Node *) p;
						n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
						(yyval.node) = (Node *) n;
					}
					else
						(yyval.node) = (Node *) p;
				;}
    break;

  case 1577:

/* Line 1455 of yacc.c  */
#line 10210 "gram.y"
    {
					if ((yyvsp[(4) - (4)].list))
					{
						A_Indirection *n = makeNode(A_Indirection);
						n->arg = (yyvsp[(2) - (4)].node);
						n->indirection = check_indirection((yyvsp[(4) - (4)].list), yyscanner);
						(yyval.node) = (Node *)n;
					}
					else
						(yyval.node) = (yyvsp[(2) - (4)].node);
				;}
    break;

  case 1578:

/* Line 1455 of yacc.c  */
#line 10222 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1579:

/* Line 1455 of yacc.c  */
#line 10224 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1580:

/* Line 1455 of yacc.c  */
#line 10226 "gram.y"
    {
					SubLink *n = makeNode(SubLink);
					n->subLinkType = EXPR_SUBLINK;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = (yyvsp[(1) - (1)].node);
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1581:

/* Line 1455 of yacc.c  */
#line 10236 "gram.y"
    {
					SubLink *n = makeNode(SubLink);
					n->subLinkType = EXISTS_SUBLINK;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = (yyvsp[(2) - (2)].node);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1582:

/* Line 1455 of yacc.c  */
#line 10246 "gram.y"
    {
					SubLink *n = makeNode(SubLink);
					n->subLinkType = ARRAY_SUBLINK;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = (yyvsp[(2) - (2)].node);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1583:

/* Line 1455 of yacc.c  */
#line 10256 "gram.y"
    {
					A_ArrayExpr *n = (A_ArrayExpr *) (yyvsp[(2) - (2)].node);
					Assert(IsA(n, A_ArrayExpr));
					/* point outermost A_ArrayExpr to the ARRAY keyword */
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1584:

/* Line 1455 of yacc.c  */
#line 10264 "gram.y"
    {
					RowExpr *r = makeNode(RowExpr);
					r->args = (yyvsp[(1) - (1)].list);
					r->row_typeid = InvalidOid;	/* not analyzed yet */
					r->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *)r;
				;}
    break;

  case 1585:

/* Line 1455 of yacc.c  */
#line 10282 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = (yyvsp[(1) - (4)].list);
					n->args = NIL;
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = (yyvsp[(4) - (4)].windef);
					n->location = (yylsp[(1) - (4)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1586:

/* Line 1455 of yacc.c  */
#line 10295 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = (yyvsp[(1) - (5)].list);
					n->args = (yyvsp[(3) - (5)].list);
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = (yyvsp[(5) - (5)].windef);
					n->location = (yylsp[(1) - (5)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1587:

/* Line 1455 of yacc.c  */
#line 10308 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = (yyvsp[(1) - (6)].list);
					n->args = list_make1((yyvsp[(4) - (6)].node));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = TRUE;
					n->over = (yyvsp[(6) - (6)].windef);
					n->location = (yylsp[(1) - (6)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1588:

/* Line 1455 of yacc.c  */
#line 10321 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = (yyvsp[(1) - (8)].list);
					n->args = lappend((yyvsp[(3) - (8)].list), (yyvsp[(6) - (8)].node));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = TRUE;
					n->over = (yyvsp[(8) - (8)].windef);
					n->location = (yylsp[(1) - (8)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1589:

/* Line 1455 of yacc.c  */
#line 10334 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = (yyvsp[(1) - (6)].list);
					n->args = (yyvsp[(3) - (6)].list);
					n->agg_order = (yyvsp[(4) - (6)].list);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = (yyvsp[(6) - (6)].windef);
					n->location = (yylsp[(1) - (6)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1590:

/* Line 1455 of yacc.c  */
#line 10347 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = (yyvsp[(1) - (7)].list);
					n->args = (yyvsp[(4) - (7)].list);
					n->agg_order = (yyvsp[(5) - (7)].list);
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					/* Ideally we'd mark the FuncCall node to indicate
					 * "must be an aggregate", but there's no provision
					 * for that in FuncCall at the moment.
					 */
					n->func_variadic = FALSE;
					n->over = (yyvsp[(7) - (7)].windef);
					n->location = (yylsp[(1) - (7)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1591:

/* Line 1455 of yacc.c  */
#line 10364 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = (yyvsp[(1) - (7)].list);
					n->args = (yyvsp[(4) - (7)].list);
					n->agg_order = (yyvsp[(5) - (7)].list);
					n->agg_star = FALSE;
					n->agg_distinct = TRUE;
					n->func_variadic = FALSE;
					n->over = (yyvsp[(7) - (7)].windef);
					n->location = (yylsp[(1) - (7)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1592:

/* Line 1455 of yacc.c  */
#line 10377 "gram.y"
    {
					/*
					 * We consider AGGREGATE(*) to invoke a parameterless
					 * aggregate.  This does the right thing for COUNT(*),
					 * and there are no other aggregates in SQL92 that accept
					 * '*' as parameter.
					 *
					 * The FuncCall node is also marked agg_star = true,
					 * so that later processing can detect what the argument
					 * really was.
					 */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = (yyvsp[(1) - (5)].list);
					n->args = NIL;
					n->agg_order = NIL;
					n->agg_star = TRUE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = (yyvsp[(5) - (5)].windef);
					n->location = (yylsp[(1) - (5)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1593:

/* Line 1455 of yacc.c  */
#line 10400 "gram.y"
    {
					/*
					 * Translate as "'now'::text::date".
					 *
					 * We cannot use "'now'::date" because coerce_type() will
					 * immediately reduce that to a constant representing
					 * today's date.  We need to delay the conversion until
					 * runtime, else the wrong things will happen when
					 * CURRENT_DATE is used in a column default value or rule.
					 *
					 * This could be simplified if we had a way to generate
					 * an expression tree representing runtime application
					 * of type-input conversion functions.  (As of PG 7.3
					 * that is actually possible, but not clear that we want
					 * to rely on it.)
					 */
					Node *n;
					n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text"));
					(yyval.node) = makeTypeCast(n, SystemTypeName("date"), -1);
				;}
    break;

  case 1594:

/* Line 1455 of yacc.c  */
#line 10421 "gram.y"
    {
					/*
					 * Translate as "'now'::text::timetz".
					 * See comments for CURRENT_DATE.
					 */
					Node *n;
					n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text"));
					(yyval.node) = makeTypeCast(n, SystemTypeName("timetz"), -1);
				;}
    break;

  case 1595:

/* Line 1455 of yacc.c  */
#line 10431 "gram.y"
    {
					/*
					 * Translate as "'now'::text::timetz(n)".
					 * See comments for CURRENT_DATE.
					 */
					Node *n;
					TypeName *d;
					n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text"));
					d = SystemTypeName("timetz");
					d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
					(yyval.node) = makeTypeCast(n, d, -1);
				;}
    break;

  case 1596:

/* Line 1455 of yacc.c  */
#line 10444 "gram.y"
    {
					/*
					 * Translate as "now()", since we have a function that
					 * does exactly what is needed.
					 */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("now");
					n->args = NIL;
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1597:

/* Line 1455 of yacc.c  */
#line 10461 "gram.y"
    {
					/*
					 * Translate as "'now'::text::timestamptz(n)".
					 * See comments for CURRENT_DATE.
					 */
					Node *n;
					TypeName *d;
					n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text"));
					d = SystemTypeName("timestamptz");
					d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
					(yyval.node) = makeTypeCast(n, d, -1);
				;}
    break;

  case 1598:

/* Line 1455 of yacc.c  */
#line 10474 "gram.y"
    {
					/*
					 * Translate as "'now'::text::time".
					 * See comments for CURRENT_DATE.
					 */
					Node *n;
					n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text"));
					(yyval.node) = makeTypeCast((Node *)n, SystemTypeName("time"), -1);
				;}
    break;

  case 1599:

/* Line 1455 of yacc.c  */
#line 10484 "gram.y"
    {
					/*
					 * Translate as "'now'::text::time(n)".
					 * See comments for CURRENT_DATE.
					 */
					Node *n;
					TypeName *d;
					n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text"));
					d = SystemTypeName("time");
					d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
					(yyval.node) = makeTypeCast((Node *)n, d, -1);
				;}
    break;

  case 1600:

/* Line 1455 of yacc.c  */
#line 10497 "gram.y"
    {
					/*
					 * Translate as "'now'::text::timestamp".
					 * See comments for CURRENT_DATE.
					 */
					Node *n;
					n = makeStringConstCast("now", (yylsp[(1) - (1)]), SystemTypeName("text"));
					(yyval.node) = makeTypeCast(n, SystemTypeName("timestamp"), -1);
				;}
    break;

  case 1601:

/* Line 1455 of yacc.c  */
#line 10507 "gram.y"
    {
					/*
					 * Translate as "'now'::text::timestamp(n)".
					 * See comments for CURRENT_DATE.
					 */
					Node *n;
					TypeName *d;
					n = makeStringConstCast("now", (yylsp[(1) - (4)]), SystemTypeName("text"));
					d = SystemTypeName("timestamp");
					d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
					(yyval.node) = makeTypeCast(n, d, -1);
				;}
    break;

  case 1602:

/* Line 1455 of yacc.c  */
#line 10520 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("current_user");
					n->args = NIL;
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1603:

/* Line 1455 of yacc.c  */
#line 10533 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("current_user");
					n->args = NIL;
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1604:

/* Line 1455 of yacc.c  */
#line 10546 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("session_user");
					n->args = NIL;
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1605:

/* Line 1455 of yacc.c  */
#line 10559 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("current_user");
					n->args = NIL;
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1606:

/* Line 1455 of yacc.c  */
#line 10572 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("current_database");
					n->args = NIL;
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1607:

/* Line 1455 of yacc.c  */
#line 10585 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("current_schema");
					n->args = NIL;
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1608:

/* Line 1455 of yacc.c  */
#line 10598 "gram.y"
    { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), (yylsp[(1) - (6)])); ;}
    break;

  case 1609:

/* Line 1455 of yacc.c  */
#line 10600 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("date_part");
					n->args = (yyvsp[(3) - (4)].list);
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (4)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1610:

/* Line 1455 of yacc.c  */
#line 10613 "gram.y"
    {
					/* overlay(A PLACING B FROM C FOR D) is converted to
					 * overlay(A, B, C, D)
					 * overlay(A PLACING B FROM C) is converted to
					 * overlay(A, B, C)
					 */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("overlay");
					n->args = (yyvsp[(3) - (4)].list);
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (4)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1611:

/* Line 1455 of yacc.c  */
#line 10631 "gram.y"
    {
					/* position(A in B) is converted to position(B, A) */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("position");
					n->args = (yyvsp[(3) - (4)].list);
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (4)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1612:

/* Line 1455 of yacc.c  */
#line 10645 "gram.y"
    {
					/* substring(A from B for C) is converted to
					 * substring(A, B, C) - thomas 2000-11-28
					 */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("substring");
					n->args = (yyvsp[(3) - (4)].list);
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (4)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1613:

/* Line 1455 of yacc.c  */
#line 10661 "gram.y"
    {
					/* TREAT(expr AS target) converts expr of a particular type to target,
					 * which is defined to be a subtype of the original expression.
					 * In SQL99, this is intended for use with structured UDTs,
					 * but let's make this a generally useful form allowing stronger
					 * coercions than are handled by implicit casting.
					 */
					FuncCall *n = makeNode(FuncCall);
					/* Convert SystemTypeName() to SystemFuncName() even though
					 * at the moment they result in the same thing.
					 */
					n->funcname = SystemFuncName(((Value *)llast((yyvsp[(5) - (6)].typnam)->names))->val.str);
					n->args = list_make1((yyvsp[(3) - (6)].node));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (6)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1614:

/* Line 1455 of yacc.c  */
#line 10683 "gram.y"
    {
					/* various trim expressions are defined in SQL92
					 * - thomas 1997-07-19
					 */
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("btrim");
					n->args = (yyvsp[(4) - (5)].list);
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (5)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1615:

/* Line 1455 of yacc.c  */
#line 10699 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("ltrim");
					n->args = (yyvsp[(4) - (5)].list);
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (5)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1616:

/* Line 1455 of yacc.c  */
#line 10712 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("rtrim");
					n->args = (yyvsp[(4) - (5)].list);
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (5)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1617:

/* Line 1455 of yacc.c  */
#line 10725 "gram.y"
    {
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("btrim");
					n->args = (yyvsp[(3) - (4)].list);
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (4)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1618:

/* Line 1455 of yacc.c  */
#line 10738 "gram.y"
    {
					(yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)]));
				;}
    break;

  case 1619:

/* Line 1455 of yacc.c  */
#line 10742 "gram.y"
    {
					CoalesceExpr *c = makeNode(CoalesceExpr);
					c->args = (yyvsp[(3) - (4)].list);
					c->location = (yylsp[(1) - (4)]);
					(yyval.node) = (Node *)c;
				;}
    break;

  case 1620:

/* Line 1455 of yacc.c  */
#line 10749 "gram.y"
    {
					MinMaxExpr *v = makeNode(MinMaxExpr);
					v->args = (yyvsp[(3) - (4)].list);
					v->op = IS_GREATEST;
					v->location = (yylsp[(1) - (4)]);
					(yyval.node) = (Node *)v;
				;}
    break;

  case 1621:

/* Line 1455 of yacc.c  */
#line 10757 "gram.y"
    {
					MinMaxExpr *v = makeNode(MinMaxExpr);
					v->args = (yyvsp[(3) - (4)].list);
					v->op = IS_LEAST;
					v->location = (yylsp[(1) - (4)]);
					(yyval.node) = (Node *)v;
				;}
    break;

  case 1622:

/* Line 1455 of yacc.c  */
#line 10765 "gram.y"
    {
					(yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 1623:

/* Line 1455 of yacc.c  */
#line 10769 "gram.y"
    {
					(yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (5)].str), NIL, NIL, (yylsp[(1) - (5)]));
				;}
    break;

  case 1624:

/* Line 1455 of yacc.c  */
#line 10773 "gram.y"
    {
					(yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), (yyvsp[(6) - (7)].list), NIL, (yylsp[(1) - (7)]));
				;}
    break;

  case 1625:

/* Line 1455 of yacc.c  */
#line 10777 "gram.y"
    {
					(yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), NIL, (yyvsp[(6) - (7)].list), (yylsp[(1) - (7)]));
				;}
    break;

  case 1626:

/* Line 1455 of yacc.c  */
#line 10781 "gram.y"
    {
					(yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (9)].str), (yyvsp[(6) - (9)].list), (yyvsp[(8) - (9)].list), (yylsp[(1) - (9)]));
				;}
    break;

  case 1627:

/* Line 1455 of yacc.c  */
#line 10785 "gram.y"
    {
					/* xmlexists(A PASSING [BY REF] B [BY REF]) is
					 * converted to xmlexists(A, B)*/
					FuncCall *n = makeNode(FuncCall);
					n->funcname = SystemFuncName("xmlexists");
					n->args = list_make2((yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node));
					n->agg_order = NIL;
					n->agg_star = FALSE;
					n->agg_distinct = FALSE;
					n->func_variadic = FALSE;
					n->over = NULL;
					n->location = (yylsp[(1) - (5)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1628:

/* Line 1455 of yacc.c  */
#line 10800 "gram.y"
    {
					(yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[(3) - (4)].list), NIL, (yylsp[(1) - (4)]));
				;}
    break;

  case 1629:

/* Line 1455 of yacc.c  */
#line 10804 "gram.y"
    {
					XmlExpr *x = (XmlExpr *)
						makeXmlExpr(IS_XMLPARSE, NULL, NIL,
									list_make2((yyvsp[(4) - (6)].node), makeBoolAConst((yyvsp[(5) - (6)].boolean), -1)),
									(yylsp[(1) - (6)]));
					x->xmloption = (yyvsp[(3) - (6)].ival);
					(yyval.node) = (Node *)x;
				;}
    break;

  case 1630:

/* Line 1455 of yacc.c  */
#line 10813 "gram.y"
    {
					(yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (5)].str), NULL, NIL, (yylsp[(1) - (5)]));
				;}
    break;

  case 1631:

/* Line 1455 of yacc.c  */
#line 10817 "gram.y"
    {
					(yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (7)].str), NULL, list_make1((yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)]));
				;}
    break;

  case 1632:

/* Line 1455 of yacc.c  */
#line 10821 "gram.y"
    {
					(yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL,
									 list_make3((yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)]));
				;}
    break;

  case 1633:

/* Line 1455 of yacc.c  */
#line 10826 "gram.y"
    {
					XmlSerialize *n = makeNode(XmlSerialize);
					n->xmloption = (yyvsp[(3) - (7)].ival);
					n->expr = (yyvsp[(4) - (7)].node);
					n->typeName = (yyvsp[(6) - (7)].typnam);
					n->location = (yylsp[(1) - (7)]);
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1634:

/* Line 1455 of yacc.c  */
#line 10840 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1635:

/* Line 1455 of yacc.c  */
#line 10842 "gram.y"
    { (yyval.node) = makeNullAConst(-1); ;}
    break;

  case 1636:

/* Line 1455 of yacc.c  */
#line 10846 "gram.y"
    { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); ;}
    break;

  case 1637:

/* Line 1455 of yacc.c  */
#line 10848 "gram.y"
    { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); ;}
    break;

  case 1638:

/* Line 1455 of yacc.c  */
#line 10850 "gram.y"
    { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); ;}
    break;

  case 1639:

/* Line 1455 of yacc.c  */
#line 10852 "gram.y"
    { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); ;}
    break;

  case 1640:

/* Line 1455 of yacc.c  */
#line 10855 "gram.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1641:

/* Line 1455 of yacc.c  */
#line 10858 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
    break;

  case 1642:

/* Line 1455 of yacc.c  */
#line 10859 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
    break;

  case 1643:

/* Line 1455 of yacc.c  */
#line 10863 "gram.y"
    {
					(yyval.target) = makeNode(ResTarget);
					(yyval.target)->name = (yyvsp[(3) - (3)].str);
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (Node *) (yyvsp[(1) - (3)].node);
					(yyval.target)->location = (yylsp[(1) - (3)]);
				;}
    break;

  case 1644:

/* Line 1455 of yacc.c  */
#line 10871 "gram.y"
    {
					(yyval.target) = makeNode(ResTarget);
					(yyval.target)->name = NULL;
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (Node *) (yyvsp[(1) - (1)].node);
					(yyval.target)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1645:

/* Line 1455 of yacc.c  */
#line 10880 "gram.y"
    { (yyval.ival) = XMLOPTION_DOCUMENT; ;}
    break;

  case 1646:

/* Line 1455 of yacc.c  */
#line 10881 "gram.y"
    { (yyval.ival) = XMLOPTION_CONTENT; ;}
    break;

  case 1647:

/* Line 1455 of yacc.c  */
#line 10884 "gram.y"
    { (yyval.boolean) = TRUE; ;}
    break;

  case 1648:

/* Line 1455 of yacc.c  */
#line 10885 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1649:

/* Line 1455 of yacc.c  */
#line 10886 "gram.y"
    { (yyval.boolean) = FALSE; ;}
    break;

  case 1650:

/* Line 1455 of yacc.c  */
#line 10892 "gram.y"
    {
					(yyval.node) = (yyvsp[(2) - (2)].node);
				;}
    break;

  case 1651:

/* Line 1455 of yacc.c  */
#line 10896 "gram.y"
    {
					(yyval.node) = (yyvsp[(2) - (4)].node);
				;}
    break;

  case 1652:

/* Line 1455 of yacc.c  */
#line 10900 "gram.y"
    {
					(yyval.node) = (yyvsp[(4) - (4)].node);
				;}
    break;

  case 1653:

/* Line 1455 of yacc.c  */
#line 10904 "gram.y"
    {
					(yyval.node) = (yyvsp[(4) - (6)].node);
				;}
    break;

  case 1654:

/* Line 1455 of yacc.c  */
#line 10914 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1655:

/* Line 1455 of yacc.c  */
#line 10915 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1656:

/* Line 1455 of yacc.c  */
#line 10919 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;}
    break;

  case 1657:

/* Line 1455 of yacc.c  */
#line 10921 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;}
    break;

  case 1658:

/* Line 1455 of yacc.c  */
#line 10926 "gram.y"
    {
					WindowDef *n = (yyvsp[(3) - (3)].windef);
					n->name = (yyvsp[(1) - (3)].str);
					(yyval.windef) = n;
				;}
    break;

  case 1659:

/* Line 1455 of yacc.c  */
#line 10934 "gram.y"
    { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;}
    break;

  case 1660:

/* Line 1455 of yacc.c  */
#line 10936 "gram.y"
    {
					WindowDef *n = makeNode(WindowDef);
					n->name = (yyvsp[(2) - (2)].str);
					n->refname = NULL;
					n->partitionClause = NIL;
					n->orderClause = NIL;
					n->frameOptions = FRAMEOPTION_DEFAULTS;
					n->startOffset = NULL;
					n->endOffset = NULL;
					n->location = (yylsp[(2) - (2)]);
					(yyval.windef) = n;
				;}
    break;

  case 1661:

/* Line 1455 of yacc.c  */
#line 10949 "gram.y"
    { (yyval.windef) = NULL; ;}
    break;

  case 1662:

/* Line 1455 of yacc.c  */
#line 10954 "gram.y"
    {
					WindowDef *n = makeNode(WindowDef);
					n->name = NULL;
					n->refname = (yyvsp[(2) - (6)].str);
					n->partitionClause = (yyvsp[(3) - (6)].list);
					n->orderClause = (yyvsp[(4) - (6)].list);
					/* copy relevant fields of opt_frame_clause */
					n->frameOptions = (yyvsp[(5) - (6)].windef)->frameOptions;
					n->startOffset = (yyvsp[(5) - (6)].windef)->startOffset;
					n->endOffset = (yyvsp[(5) - (6)].windef)->endOffset;
					n->location = (yylsp[(1) - (6)]);
					(yyval.windef) = n;
				;}
    break;

  case 1663:

/* Line 1455 of yacc.c  */
#line 10979 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1664:

/* Line 1455 of yacc.c  */
#line 10980 "gram.y"
    { (yyval.str) = NULL; ;}
    break;

  case 1665:

/* Line 1455 of yacc.c  */
#line 10983 "gram.y"
    { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
    break;

  case 1666:

/* Line 1455 of yacc.c  */
#line 10984 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1667:

/* Line 1455 of yacc.c  */
#line 10996 "gram.y"
    {
					WindowDef *n = (yyvsp[(2) - (2)].windef);
					n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE;
					if (n->frameOptions & (FRAMEOPTION_START_VALUE_PRECEDING |
										   FRAMEOPTION_END_VALUE_PRECEDING))
						ereport(ERROR,
								(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("RANGE PRECEDING is only supported with UNBOUNDED"),
								 parser_errposition((yylsp[(1) - (2)]))));
					if (n->frameOptions & (FRAMEOPTION_START_VALUE_FOLLOWING |
										   FRAMEOPTION_END_VALUE_FOLLOWING))
						ereport(ERROR,
								(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("RANGE FOLLOWING is only supported with UNBOUNDED"),
								 parser_errposition((yylsp[(1) - (2)]))));
					(yyval.windef) = n;
				;}
    break;

  case 1668:

/* Line 1455 of yacc.c  */
#line 11014 "gram.y"
    {
					WindowDef *n = (yyvsp[(2) - (2)].windef);
					n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS;
					(yyval.windef) = n;
				;}
    break;

  case 1669:

/* Line 1455 of yacc.c  */
#line 11020 "gram.y"
    {
					WindowDef *n = makeNode(WindowDef);
					n->frameOptions = FRAMEOPTION_DEFAULTS;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1670:

/* Line 1455 of yacc.c  */
#line 11030 "gram.y"
    {
					WindowDef *n = (yyvsp[(1) - (1)].windef);
					/* reject invalid cases */
					if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
						ereport(ERROR,
								(errcode(ERRCODE_WINDOWING_ERROR),
								 errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
								 parser_errposition((yylsp[(1) - (1)]))));
					if (n->frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING)
						ereport(ERROR,
								(errcode(ERRCODE_WINDOWING_ERROR),
								 errmsg("frame starting from following row cannot end with current row"),
								 parser_errposition((yylsp[(1) - (1)]))));
					n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW;
					(yyval.windef) = n;
				;}
    break;

  case 1671:

/* Line 1455 of yacc.c  */
#line 11047 "gram.y"
    {
					WindowDef *n1 = (yyvsp[(2) - (4)].windef);
					WindowDef *n2 = (yyvsp[(4) - (4)].windef);
					/* form merged options */
					int		frameOptions = n1->frameOptions;
					/* shift converts START_ options to END_ options */
					frameOptions |= n2->frameOptions << 1;
					frameOptions |= FRAMEOPTION_BETWEEN;
					/* reject invalid cases */
					if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
						ereport(ERROR,
								(errcode(ERRCODE_WINDOWING_ERROR),
								 errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
								 parser_errposition((yylsp[(2) - (4)]))));
					if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING)
						ereport(ERROR,
								(errcode(ERRCODE_WINDOWING_ERROR),
								 errmsg("frame end cannot be UNBOUNDED PRECEDING"),
								 parser_errposition((yylsp[(4) - (4)]))));
					if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) &&
						(frameOptions & FRAMEOPTION_END_VALUE_PRECEDING))
						ereport(ERROR,
								(errcode(ERRCODE_WINDOWING_ERROR),
								 errmsg("frame starting from current row cannot have preceding rows"),
								 parser_errposition((yylsp[(4) - (4)]))));
					if ((frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) &&
						(frameOptions & (FRAMEOPTION_END_VALUE_PRECEDING |
										 FRAMEOPTION_END_CURRENT_ROW)))
						ereport(ERROR,
								(errcode(ERRCODE_WINDOWING_ERROR),
								 errmsg("frame starting from following row cannot have preceding rows"),
								 parser_errposition((yylsp[(4) - (4)]))));
					n1->frameOptions = frameOptions;
					n1->endOffset = n2->startOffset;
					(yyval.windef) = n1;
				;}
    break;

  case 1672:

/* Line 1455 of yacc.c  */
#line 11092 "gram.y"
    {
					WindowDef *n = makeNode(WindowDef);
					n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1673:

/* Line 1455 of yacc.c  */
#line 11100 "gram.y"
    {
					WindowDef *n = makeNode(WindowDef);
					n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1674:

/* Line 1455 of yacc.c  */
#line 11108 "gram.y"
    {
					WindowDef *n = makeNode(WindowDef);
					n->frameOptions = FRAMEOPTION_START_CURRENT_ROW;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1675:

/* Line 1455 of yacc.c  */
#line 11116 "gram.y"
    {
					WindowDef *n = makeNode(WindowDef);
					n->frameOptions = FRAMEOPTION_START_VALUE_PRECEDING;
					n->startOffset = (yyvsp[(1) - (2)].node);
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1676:

/* Line 1455 of yacc.c  */
#line 11124 "gram.y"
    {
					WindowDef *n = makeNode(WindowDef);
					n->frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING;
					n->startOffset = (yyvsp[(1) - (2)].node);
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1677:

/* Line 1455 of yacc.c  */
#line 11144 "gram.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1678:

/* Line 1455 of yacc.c  */
#line 11145 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1679:

/* Line 1455 of yacc.c  */
#line 11146 "gram.y"
    { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;}
    break;

  case 1680:

/* Line 1455 of yacc.c  */
#line 11149 "gram.y"
    { (yyval.ival) = ANY_SUBLINK; ;}
    break;

  case 1681:

/* Line 1455 of yacc.c  */
#line 11150 "gram.y"
    { (yyval.ival) = ANY_SUBLINK; ;}
    break;

  case 1682:

/* Line 1455 of yacc.c  */
#line 11151 "gram.y"
    { (yyval.ival) = ALL_SUBLINK; ;}
    break;

  case 1683:

/* Line 1455 of yacc.c  */
#line 11154 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1684:

/* Line 1455 of yacc.c  */
#line 11155 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1685:

/* Line 1455 of yacc.c  */
#line 11158 "gram.y"
    { (yyval.str) = "+"; ;}
    break;

  case 1686:

/* Line 1455 of yacc.c  */
#line 11159 "gram.y"
    { (yyval.str) = "-"; ;}
    break;

  case 1687:

/* Line 1455 of yacc.c  */
#line 11160 "gram.y"
    { (yyval.str) = "*"; ;}
    break;

  case 1688:

/* Line 1455 of yacc.c  */
#line 11161 "gram.y"
    { (yyval.str) = "/"; ;}
    break;

  case 1689:

/* Line 1455 of yacc.c  */
#line 11162 "gram.y"
    { (yyval.str) = "%"; ;}
    break;

  case 1690:

/* Line 1455 of yacc.c  */
#line 11163 "gram.y"
    { (yyval.str) = "^"; ;}
    break;

  case 1691:

/* Line 1455 of yacc.c  */
#line 11164 "gram.y"
    { (yyval.str) = "<"; ;}
    break;

  case 1692:

/* Line 1455 of yacc.c  */
#line 11165 "gram.y"
    { (yyval.str) = ">"; ;}
    break;

  case 1693:

/* Line 1455 of yacc.c  */
#line 11166 "gram.y"
    { (yyval.str) = "="; ;}
    break;

  case 1694:

/* Line 1455 of yacc.c  */
#line 11170 "gram.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1695:

/* Line 1455 of yacc.c  */
#line 11172 "gram.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1696:

/* Line 1455 of yacc.c  */
#line 11177 "gram.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1697:

/* Line 1455 of yacc.c  */
#line 11179 "gram.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1698:

/* Line 1455 of yacc.c  */
#line 11184 "gram.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1699:

/* Line 1455 of yacc.c  */
#line 11186 "gram.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1700:

/* Line 1455 of yacc.c  */
#line 11188 "gram.y"
    { (yyval.list) = list_make1(makeString("~~")); ;}
    break;

  case 1701:

/* Line 1455 of yacc.c  */
#line 11190 "gram.y"
    { (yyval.list) = list_make1(makeString("!~~")); ;}
    break;

  case 1702:

/* Line 1455 of yacc.c  */
#line 11192 "gram.y"
    { (yyval.list) = list_make1(makeString("~~*")); ;}
    break;

  case 1703:

/* Line 1455 of yacc.c  */
#line 11194 "gram.y"
    { (yyval.list) = list_make1(makeString("!~~*")); ;}
    break;

  case 1704:

/* Line 1455 of yacc.c  */
#line 11206 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 1705:

/* Line 1455 of yacc.c  */
#line 11210 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1706:

/* Line 1455 of yacc.c  */
#line 11217 "gram.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 1707:

/* Line 1455 of yacc.c  */
#line 11221 "gram.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1708:

/* Line 1455 of yacc.c  */
#line 11227 "gram.y"
    {
					(yyval.node) = (yyvsp[(1) - (1)].node);
				;}
    break;

  case 1709:

/* Line 1455 of yacc.c  */
#line 11231 "gram.y"
    {
					NamedArgExpr *na = makeNode(NamedArgExpr);
					na->name = (yyvsp[(1) - (3)].str);
					na->arg = (Expr *) (yyvsp[(3) - (3)].node);
					na->argnumber = -1;		/* until determined */
					na->location = (yylsp[(1) - (3)]);
					(yyval.node) = (Node *) na;
				;}
    break;

  case 1710:

/* Line 1455 of yacc.c  */
#line 11241 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;}
    break;

  case 1711:

/* Line 1455 of yacc.c  */
#line 11242 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;}
    break;

  case 1712:

/* Line 1455 of yacc.c  */
#line 11246 "gram.y"
    {
					(yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)]));
				;}
    break;

  case 1713:

/* Line 1455 of yacc.c  */
#line 11250 "gram.y"
    {
					(yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)]));
				;}
    break;

  case 1714:

/* Line 1455 of yacc.c  */
#line 11254 "gram.y"
    {
					(yyval.node) = makeAArrayExpr(NIL, (yylsp[(1) - (2)]));
				;}
    break;

  case 1715:

/* Line 1455 of yacc.c  */
#line 11259 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1716:

/* Line 1455 of yacc.c  */
#line 11260 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 1717:

/* Line 1455 of yacc.c  */
#line 11266 "gram.y"
    {
					(yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1718:

/* Line 1455 of yacc.c  */
#line 11269 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1719:

/* Line 1455 of yacc.c  */
#line 11276 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1720:

/* Line 1455 of yacc.c  */
#line 11277 "gram.y"
    { (yyval.str) = "year"; ;}
    break;

  case 1721:

/* Line 1455 of yacc.c  */
#line 11278 "gram.y"
    { (yyval.str) = "month"; ;}
    break;

  case 1722:

/* Line 1455 of yacc.c  */
#line 11279 "gram.y"
    { (yyval.str) = "day"; ;}
    break;

  case 1723:

/* Line 1455 of yacc.c  */
#line 11280 "gram.y"
    { (yyval.str) = "hour"; ;}
    break;

  case 1724:

/* Line 1455 of yacc.c  */
#line 11281 "gram.y"
    { (yyval.str) = "minute"; ;}
    break;

  case 1725:

/* Line 1455 of yacc.c  */
#line 11282 "gram.y"
    { (yyval.str) = "second"; ;}
    break;

  case 1726:

/* Line 1455 of yacc.c  */
#line 11283 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1727:

/* Line 1455 of yacc.c  */
#line 11294 "gram.y"
    {
					(yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 1728:

/* Line 1455 of yacc.c  */
#line 11298 "gram.y"
    {
					(yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1729:

/* Line 1455 of yacc.c  */
#line 11305 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1730:

/* Line 1455 of yacc.c  */
#line 11311 "gram.y"
    { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;}
    break;

  case 1731:

/* Line 1455 of yacc.c  */
#line 11312 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1732:

/* Line 1455 of yacc.c  */
#line 11329 "gram.y"
    {
					(yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1733:

/* Line 1455 of yacc.c  */
#line 11333 "gram.y"
    {
					/* not legal per SQL99, but might as well allow it */
					(yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].node));
				;}
    break;

  case 1734:

/* Line 1455 of yacc.c  */
#line 11338 "gram.y"
    {
					(yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
				;}
    break;

  case 1735:

/* Line 1455 of yacc.c  */
#line 11342 "gram.y"
    {
					/*
					 * Since there are no cases where this syntax allows
					 * a textual FOR value, we forcibly cast the argument
					 * to int4.  The possible matches in pg_proc are
					 * substring(text,int4) and substring(text,text),
					 * and we don't want the parser to choose the latter,
					 * which it is likely to do if the second argument
					 * is unknown or doesn't have an implicit cast to int4.
					 */
					(yyval.list) = list_make3((yyvsp[(1) - (2)].node), makeIntConst(1, -1),
									makeTypeCast((yyvsp[(2) - (2)].node),
												 SystemTypeName("int4"), -1));
				;}
    break;

  case 1736:

/* Line 1455 of yacc.c  */
#line 11357 "gram.y"
    {
					(yyval.list) = (yyvsp[(1) - (1)].list);
				;}
    break;

  case 1737:

/* Line 1455 of yacc.c  */
#line 11361 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1738:

/* Line 1455 of yacc.c  */
#line 11365 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1739:

/* Line 1455 of yacc.c  */
#line 11368 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1740:

/* Line 1455 of yacc.c  */
#line 11371 "gram.y"
    { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;}
    break;

  case 1741:

/* Line 1455 of yacc.c  */
#line 11372 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1742:

/* Line 1455 of yacc.c  */
#line 11373 "gram.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1743:

/* Line 1455 of yacc.c  */
#line 11377 "gram.y"
    {
					SubLink *n = makeNode(SubLink);
					n->subselect = (yyvsp[(1) - (1)].node);
					/* other fields will be filled later */
					(yyval.node) = (Node *)n;
				;}
    break;

  case 1744:

/* Line 1455 of yacc.c  */
#line 11383 "gram.y"
    { (yyval.node) = (Node *)(yyvsp[(2) - (3)].list); ;}
    break;

  case 1745:

/* Line 1455 of yacc.c  */
#line 11394 "gram.y"
    {
					CaseExpr *c = makeNode(CaseExpr);
					c->casetype = InvalidOid; /* not analyzed yet */
					c->arg = (Expr *) (yyvsp[(2) - (5)].node);
					c->args = (yyvsp[(3) - (5)].list);
					c->defresult = (Expr *) (yyvsp[(4) - (5)].node);
					c->location = (yylsp[(1) - (5)]);
					(yyval.node) = (Node *)c;
				;}
    break;

  case 1746:

/* Line 1455 of yacc.c  */
#line 11407 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1747:

/* Line 1455 of yacc.c  */
#line 11408 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 1748:

/* Line 1455 of yacc.c  */
#line 11413 "gram.y"
    {
					CaseWhen *w = makeNode(CaseWhen);
					w->expr = (Expr *) (yyvsp[(2) - (4)].node);
					w->result = (Expr *) (yyvsp[(4) - (4)].node);
					w->location = (yylsp[(1) - (4)]);
					(yyval.node) = (Node *)w;
				;}
    break;

  case 1749:

/* Line 1455 of yacc.c  */
#line 11423 "gram.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1750:

/* Line 1455 of yacc.c  */
#line 11424 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1751:

/* Line 1455 of yacc.c  */
#line 11427 "gram.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1752:

/* Line 1455 of yacc.c  */
#line 11428 "gram.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1753:

/* Line 1455 of yacc.c  */
#line 11432 "gram.y"
    {
					(yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner);
				;}
    break;

  case 1754:

/* Line 1455 of yacc.c  */
#line 11436 "gram.y"
    {
					(yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner);
				;}
    break;

  case 1755:

/* Line 1455 of yacc.c  */
#line 11443 "gram.y"
    {
					(yyval.node) = (Node *) makeString((yyvsp[(2) - (2)].str));
				;}
    break;

  case 1756:

/* Line 1455 of yacc.c  */
#line 11447 "gram.y"
    {
					(yyval.node) = (Node *) makeNode(A_Star);
				;}
    break;

  case 1757:

/* Line 1455 of yacc.c  */
#line 11451 "gram.y"
    {
					A_Indices *ai = makeNode(A_Indices);
					ai->lidx = NULL;
					ai->uidx = (yyvsp[(2) - (3)].node);
					(yyval.node) = (Node *) ai;
				;}
    break;

  case 1758:

/* Line 1455 of yacc.c  */
#line 11458 "gram.y"
    {
					A_Indices *ai = makeNode(A_Indices);
					ai->lidx = (yyvsp[(2) - (5)].node);
					ai->uidx = (yyvsp[(4) - (5)].node);
					(yyval.node) = (Node *) ai;
				;}
    break;

  case 1759:

/* Line 1455 of yacc.c  */
#line 11467 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1760:

/* Line 1455 of yacc.c  */
#line 11468 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 1761:

/* Line 1455 of yacc.c  */
#line 11472 "gram.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1762:

/* Line 1455 of yacc.c  */
#line 11473 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 1765:

/* Line 1455 of yacc.c  */
#line 11488 "gram.y"
    { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;}
    break;

  case 1766:

/* Line 1455 of yacc.c  */
#line 11490 "gram.y"
    {
					SetToDefault *n = makeNode(SetToDefault);
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (Node *) n;
				;}
    break;

  case 1767:

/* Line 1455 of yacc.c  */
#line 11498 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1768:

/* Line 1455 of yacc.c  */
#line 11499 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 1769:

/* Line 1455 of yacc.c  */
#line 11507 "gram.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 1770:

/* Line 1455 of yacc.c  */
#line 11518 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
    break;

  case 1771:

/* Line 1455 of yacc.c  */
#line 11519 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
    break;

  case 1772:

/* Line 1455 of yacc.c  */
#line 11523 "gram.y"
    {
					(yyval.target) = makeNode(ResTarget);
					(yyval.target)->name = (yyvsp[(3) - (3)].str);
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (Node *)(yyvsp[(1) - (3)].node);
					(yyval.target)->location = (yylsp[(1) - (3)]);
				;}
    break;

  case 1773:

/* Line 1455 of yacc.c  */
#line 11539 "gram.y"
    {
					(yyval.target) = makeNode(ResTarget);
					(yyval.target)->name = (yyvsp[(2) - (2)].str);
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (Node *)(yyvsp[(1) - (2)].node);
					(yyval.target)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1774:

/* Line 1455 of yacc.c  */
#line 11547 "gram.y"
    {
					(yyval.target) = makeNode(ResTarget);
					(yyval.target)->name = NULL;
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (Node *)(yyvsp[(1) - (1)].node);
					(yyval.target)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1775:

/* Line 1455 of yacc.c  */
#line 11555 "gram.y"
    {
					ColumnRef *n = makeNode(ColumnRef);
					n->fields = list_make1(makeNode(A_Star));
					n->location = (yylsp[(1) - (1)]);

					(yyval.target) = makeNode(ResTarget);
					(yyval.target)->name = NULL;
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (Node *)n;
					(yyval.target)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1776:

/* Line 1455 of yacc.c  */
#line 11576 "gram.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;}
    break;

  case 1777:

/* Line 1455 of yacc.c  */
#line 11577 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;}
    break;

  case 1778:

/* Line 1455 of yacc.c  */
#line 11589 "gram.y"
    {
					(yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1779:

/* Line 1455 of yacc.c  */
#line 11593 "gram.y"
    {
					check_qualified_name((yyvsp[(2) - (2)].list), yyscanner);
					(yyval.range) = makeRangeVar(NULL, NULL, (yylsp[(1) - (2)]));
					switch (list_length((yyvsp[(2) - (2)].list)))
					{
						case 1:
							(yyval.range)->catalogname = NULL;
							(yyval.range)->schemaname = (yyvsp[(1) - (2)].str);
							(yyval.range)->relname = strVal(linitial((yyvsp[(2) - (2)].list)));
							break;
						case 2:
							(yyval.range)->catalogname = (yyvsp[(1) - (2)].str);
							(yyval.range)->schemaname = strVal(linitial((yyvsp[(2) - (2)].list)));
							(yyval.range)->relname = strVal(lsecond((yyvsp[(2) - (2)].list)));
							break;
						default:
							ereport(ERROR,
									(errcode(ERRCODE_SYNTAX_ERROR),
									 errmsg("improper qualified name (too many dotted names): %s",
											NameListToString(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)))),
									 parser_errposition((yylsp[(1) - (2)]))));
							break;
					}
				;}
    break;

  case 1780:

/* Line 1455 of yacc.c  */
#line 11620 "gram.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1781:

/* Line 1455 of yacc.c  */
#line 11622 "gram.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;}
    break;

  case 1782:

/* Line 1455 of yacc.c  */
#line 11626 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1783:

/* Line 1455 of yacc.c  */
#line 11629 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1784:

/* Line 1455 of yacc.c  */
#line 11632 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1785:

/* Line 1455 of yacc.c  */
#line 11634 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1786:

/* Line 1455 of yacc.c  */
#line 11636 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1787:

/* Line 1455 of yacc.c  */
#line 11638 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1788:

/* Line 1455 of yacc.c  */
#line 11649 "gram.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1789:

/* Line 1455 of yacc.c  */
#line 11651 "gram.y"
    {
						(yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)),
											 yyscanner);
					;}
    break;

  case 1790:

/* Line 1455 of yacc.c  */
#line 11662 "gram.y"
    {
					(yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)]));
				;}
    break;

  case 1791:

/* Line 1455 of yacc.c  */
#line 11666 "gram.y"
    {
					(yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1792:

/* Line 1455 of yacc.c  */
#line 11670 "gram.y"
    {
					(yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1793:

/* Line 1455 of yacc.c  */
#line 11674 "gram.y"
    {
					(yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1794:

/* Line 1455 of yacc.c  */
#line 11678 "gram.y"
    {
					/* This is a bit constant per SQL99:
					 * Without Feature F511, "BIT data type",
					 * a <general literal> shall not be a
					 * <bit string literal> or a <hex string literal>.
					 */
					(yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1795:

/* Line 1455 of yacc.c  */
#line 11687 "gram.y"
    {
					/* generic type 'literal' syntax */
					TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list));
					t->location = (yylsp[(1) - (2)]);
					(yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), t);
				;}
    break;

  case 1796:

/* Line 1455 of yacc.c  */
#line 11694 "gram.y"
    {
					/* generic syntax with a type modifier */
					TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (5)].list));
					ListCell *lc;

					/*
					 * We must use func_arg_list in the production to avoid
					 * reduce/reduce conflicts, but we don't actually wish
					 * to allow NamedArgExpr in this context.
					 */
					foreach(lc, (yyvsp[(3) - (5)].list))
					{
						NamedArgExpr *arg = (NamedArgExpr *) lfirst(lc);

						if (IsA(arg, NamedArgExpr))
							ereport(ERROR,
								    (errcode(ERRCODE_SYNTAX_ERROR),
								     errmsg("type modifier cannot have parameter name"),
								     parser_errposition(arg->location)));
					}
					t->typmods = (yyvsp[(3) - (5)].list);
					t->location = (yylsp[(1) - (5)]);
					(yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t);
				;}
    break;

  case 1797:

/* Line 1455 of yacc.c  */
#line 11719 "gram.y"
    {
					(yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam));
				;}
    break;

  case 1798:

/* Line 1455 of yacc.c  */
#line 11723 "gram.y"
    {
					TypeName *t = (yyvsp[(1) - (3)].typnam);
					t->typmods = (yyvsp[(3) - (3)].list);
					(yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t);
				;}
    break;

  case 1799:

/* Line 1455 of yacc.c  */
#line 11729 "gram.y"
    {
					TypeName *t = (yyvsp[(1) - (6)].typnam);
					if ((yyvsp[(6) - (6)].list) != NIL)
					{
						if (list_length((yyvsp[(6) - (6)].list)) != 1)
							ereport(ERROR,
									(errcode(ERRCODE_SYNTAX_ERROR),
									 errmsg("interval precision specified twice"),
									 parser_errposition((yylsp[(1) - (6)]))));
						t->typmods = lappend((yyvsp[(6) - (6)].list), makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)])));
					}
					else
						t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
												makeIntConst((yyvsp[(3) - (6)].ival), (yylsp[(3) - (6)])));
					(yyval.node) = makeStringConstCast((yyvsp[(5) - (6)].str), (yylsp[(5) - (6)]), t);
				;}
    break;

  case 1800:

/* Line 1455 of yacc.c  */
#line 11746 "gram.y"
    {
					(yyval.node) = makeBoolAConst(TRUE, (yylsp[(1) - (1)]));
				;}
    break;

  case 1801:

/* Line 1455 of yacc.c  */
#line 11750 "gram.y"
    {
					(yyval.node) = makeBoolAConst(FALSE, (yylsp[(1) - (1)]));
				;}
    break;

  case 1802:

/* Line 1455 of yacc.c  */
#line 11754 "gram.y"
    {
					(yyval.node) = makeNullAConst((yylsp[(1) - (1)]));
				;}
    break;

  case 1803:

/* Line 1455 of yacc.c  */
#line 11759 "gram.y"
    { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
    break;

  case 1804:

/* Line 1455 of yacc.c  */
#line 11760 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1805:

/* Line 1455 of yacc.c  */
#line 11761 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1806:

/* Line 1455 of yacc.c  */
#line 11763 "gram.y"
    { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
    break;

  case 1807:

/* Line 1455 of yacc.c  */
#line 11764 "gram.y"
    { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;}
    break;

  case 1808:

/* Line 1455 of yacc.c  */
#line 11765 "gram.y"
    { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;}
    break;

  case 1809:

/* Line 1455 of yacc.c  */
#line 11781 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1810:

/* Line 1455 of yacc.c  */
#line 11782 "gram.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1811:

/* Line 1455 of yacc.c  */
#line 11783 "gram.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1812:

/* Line 1455 of yacc.c  */
#line 11788 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1813:

/* Line 1455 of yacc.c  */
#line 11789 "gram.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1814:

/* Line 1455 of yacc.c  */
#line 11790 "gram.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1815:

/* Line 1455 of yacc.c  */
#line 11796 "gram.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1816:

/* Line 1455 of yacc.c  */
#line 11797 "gram.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1817:

/* Line 1455 of yacc.c  */
#line 11798 "gram.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1818:

/* Line 1455 of yacc.c  */
#line 11799 "gram.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1819:

/* Line 1455 of yacc.c  */
#line 11800 "gram.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;



/* Line 1455 of yacc.c  */
#line 35901 "gram.c"
      default: break;
    }
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);

  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);

  *++yyvsp = yyval;
  *++yylsp = yyloc;

  /* Now `shift' the result of the reduction.  Determine what state
     that goes to, based on the state we popped back to and the rule
     number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTOKENS];

  goto yynewstate;


/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
  /* If not already recovering from an error, report this error.  */
  if (!yyerrstatus)
    {
      ++yynerrs;
#if ! YYERROR_VERBOSE
      yyerror (&yylloc, yyscanner, YY_("syntax error"));
#else
      {
	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
	  {
	    YYSIZE_T yyalloc = 2 * yysize;
	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
	    if (yymsg != yymsgbuf)
	      YYSTACK_FREE (yymsg);
	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
	    if (yymsg)
	      yymsg_alloc = yyalloc;
	    else
	      {
		yymsg = yymsgbuf;
		yymsg_alloc = sizeof yymsgbuf;
	      }
	  }

	if (0 < yysize && yysize <= yymsg_alloc)
	  {
	    (void) yysyntax_error (yymsg, yystate, yychar);
	    yyerror (&yylloc, yyscanner, yymsg);
	  }
	else
	  {
	    yyerror (&yylloc, yyscanner, YY_("syntax error"));
	    if (yysize != 0)
	      goto yyexhaustedlab;
	  }
      }
#endif
    }

  yyerror_range[0] = yylloc;

  if (yyerrstatus == 3)
    {
      /* If just tried and failed to reuse lookahead token after an
	 error, discard it.  */

      if (yychar <= YYEOF)
	{
	  /* Return failure if at end of input.  */
	  if (yychar == YYEOF)
	    YYABORT;
	}
      else
	{
	  yydestruct ("Error: discarding",
		      yytoken, &yylval, &yylloc, yyscanner);
	  yychar = YYEMPTY;
	}
    }

  /* Else will try to reuse lookahead token after shifting the error
     token.  */
  goto yyerrlab1;


/*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR.  |
`---------------------------------------------------*/
yyerrorlab:

  /* Pacify compilers like GCC when the user code never invokes
     YYERROR and the label yyerrorlab therefore never appears in user
     code.  */
  if (/*CONSTCOND*/ 0)
     goto yyerrorlab;

  yyerror_range[0] = yylsp[1-yylen];
  /* Do not reclaim the symbols of the rule which action triggered
     this YYERROR.  */
  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);
  yystate = *yyssp;
  goto yyerrlab1;


/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
`-------------------------------------------------------------*/
yyerrlab1:
  yyerrstatus = 3;	/* Each real token shifted decrements this.  */

  for (;;)
    {
      yyn = yypact[yystate];
      if (yyn != YYPACT_NINF)
	{
	  yyn += YYTERROR;
	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
	    {
	      yyn = yytable[yyn];
	      if (0 < yyn)
		break;
	    }
	}

      /* Pop the current state because it cannot handle the error token.  */
      if (yyssp == yyss)
	YYABORT;

      yyerror_range[0] = *yylsp;
      yydestruct ("Error: popping",
		  yystos[yystate], yyvsp, yylsp, yyscanner);
      YYPOPSTACK (1);
      yystate = *yyssp;
      YY_STACK_PRINT (yyss, yyssp);
    }

  *++yyvsp = yylval;

  yyerror_range[1] = yylloc;
  /* Using YYLLOC is tempting, but would change the location of
     the lookahead.  YYLOC is available though.  */
  YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
  *++yylsp = yyloc;

  /* Shift the error token.  */
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);

  yystate = yyn;
  goto yynewstate;


/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here.  |
`-------------------------------------*/
yyacceptlab:
  yyresult = 0;
  goto yyreturn;

/*-----------------------------------.
| yyabortlab -- YYABORT comes here.  |
`-----------------------------------*/
yyabortlab:
  yyresult = 1;
  goto yyreturn;

#if !defined(yyoverflow) || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here.  |
`-------------------------------------------------*/
yyexhaustedlab:
  yyerror (&yylloc, yyscanner, YY_("memory exhausted"));
  yyresult = 2;
  /* Fall through.  */
#endif

yyreturn:
  if (yychar != YYEMPTY)
     yydestruct ("Cleanup: discarding lookahead",
		 yytoken, &yylval, &yylloc, yyscanner);
  /* Do not reclaim the symbols of the rule which action triggered
     this YYABORT or YYACCEPT.  */
  YYPOPSTACK (yylen);
  YY_STACK_PRINT (yyss, yyssp);
  while (yyssp != yyss)
    {
      yydestruct ("Cleanup: popping",
		  yystos[*yyssp], yyvsp, yylsp, yyscanner);
      YYPOPSTACK (1);
    }
#ifndef yyoverflow
  if (yyss != yyssa)
    YYSTACK_FREE (yyss);
#endif
#if YYERROR_VERBOSE
  if (yymsg != yymsgbuf)
    YYSTACK_FREE (yymsg);
#endif
  /* Make sure YYID is used.  */
  return YYID (yyresult);
}



/* Line 1675 of yacc.c  */
#line 12250 "gram.y"


/*
 * The signature of this function is required by bison.  However, we
 * ignore the passed yylloc and instead use the last token position
 * available from the scanner.
 */
static void
base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg)
{
	parser_yyerror(msg);
}

static Node *
makeColumnRef(char *colname, List *indirection,
			  int location, core_yyscan_t yyscanner)
{
	/*
	 * Generate a ColumnRef node, with an A_Indirection node added if there
	 * is any subscripting in the specified indirection list.  However,
	 * any field selection at the start of the indirection list must be
	 * transposed into the "fields" part of the ColumnRef node.
	 */
	ColumnRef  *c = makeNode(ColumnRef);
	int		nfields = 0;
	ListCell *l;

	c->location = location;
	foreach(l, indirection)
	{
		if (IsA(lfirst(l), A_Indices))
		{
			A_Indirection *i = makeNode(A_Indirection);

			if (nfields == 0)
			{
				/* easy case - all indirection goes to A_Indirection */
				c->fields = list_make1(makeString(colname));
				i->indirection = check_indirection(indirection, yyscanner);
			}
			else
			{
				/* got to split the list in two */
				i->indirection = check_indirection(list_copy_tail(indirection,
																  nfields),
												   yyscanner);
				indirection = list_truncate(indirection, nfields);
				c->fields = lcons(makeString(colname), indirection);
			}
			i->arg = (Node *) c;
			return (Node *) i;
		}
		else if (IsA(lfirst(l), A_Star))
		{
			/* We only allow '*' at the end of a ColumnRef */
			if (lnext(l) != NULL)
				parser_yyerror("improper use of \"*\"");
		}
		nfields++;
	}
	/* No subscripting, so all indirection gets added to field list */
	c->fields = lcons(makeString(colname), indirection);
	return (Node *) c;
}

static Node *
makeTypeCast(Node *arg, TypeName *typename, int location)
{
	TypeCast *n = makeNode(TypeCast);
	n->arg = arg;
	n->typeName = typename;
	n->location = location;
	return (Node *) n;
}

static Node *
makeStringConst(char *str, int location)
{
	A_Const *n = makeNode(A_Const);

	n->val.type = T_String;
	n->val.val.str = str;
	n->location = location;

	return (Node *)n;
}

static Node *
makeStringConstCast(char *str, int location, TypeName *typename)
{
	Node *s = makeStringConst(str, location);

	return makeTypeCast(s, typename, -1);
}

static Node *
makeIntConst(int val, int location)
{
	A_Const *n = makeNode(A_Const);

	n->val.type = T_Integer;
	n->val.val.ival = val;
	n->location = location;

	return (Node *)n;
}

static Node *
makeFloatConst(char *str, int location)
{
	A_Const *n = makeNode(A_Const);

	n->val.type = T_Float;
	n->val.val.str = str;
	n->location = location;

	return (Node *)n;
}

static Node *
makeBitStringConst(char *str, int location)
{
	A_Const *n = makeNode(A_Const);

	n->val.type = T_BitString;
	n->val.val.str = str;
	n->location = location;

	return (Node *)n;
}

static Node *
makeNullAConst(int location)
{
	A_Const *n = makeNode(A_Const);

	n->val.type = T_Null;
	n->location = location;

	return (Node *)n;
}

static Node *
makeAConst(Value *v, int location)
{
	Node *n;

	switch (v->type)
	{
		case T_Float:
			n = makeFloatConst(v->val.str, location);
			break;

		case T_Integer:
			n = makeIntConst(v->val.ival, location);
			break;

		case T_String:
		default:
			n = makeStringConst(v->val.str, location);
			break;
	}

	return n;
}

/* makeBoolAConst()
 * Create an A_Const string node and put it inside a boolean cast.
 */
static Node *
makeBoolAConst(bool state, int location)
{
	A_Const *n = makeNode(A_Const);

	n->val.type = T_String;
	n->val.val.str = (state ? "t" : "f");
	n->location = location;

	return makeTypeCast((Node *)n, SystemTypeName("bool"), -1);
}

/* makeOverlaps()
 * Create and populate a FuncCall node to support the OVERLAPS operator.
 */
static FuncCall *
makeOverlaps(List *largs, List *rargs, int location, core_yyscan_t yyscanner)
{
	FuncCall *n = makeNode(FuncCall);

	n->funcname = SystemFuncName("overlaps");
	if (list_length(largs) == 1)
		largs = lappend(largs, largs);
	else if (list_length(largs) != 2)
		ereport(ERROR,
				(errcode(ERRCODE_SYNTAX_ERROR),
				 errmsg("wrong number of parameters on left side of OVERLAPS expression"),
				 parser_errposition(location)));
	if (list_length(rargs) == 1)
		rargs = lappend(rargs, rargs);
	else if (list_length(rargs) != 2)
		ereport(ERROR,
				(errcode(ERRCODE_SYNTAX_ERROR),
				 errmsg("wrong number of parameters on right side of OVERLAPS expression"),
				 parser_errposition(location)));
	n->args = list_concat(largs, rargs);
	n->agg_order = NIL;
	n->agg_star = FALSE;
	n->agg_distinct = FALSE;
	n->func_variadic = FALSE;
	n->over = NULL;
	n->location = location;
	return n;
}

/* check_qualified_name --- check the result of qualified_name production
 *
 * It's easiest to let the grammar production for qualified_name allow
 * subscripts and '*', which we then must reject here.
 */
static void
check_qualified_name(List *names, core_yyscan_t yyscanner)
{
	ListCell   *i;

	foreach(i, names)
	{
		if (!IsA(lfirst(i), String))
			parser_yyerror("syntax error");
	}
}

/* check_func_name --- check the result of func_name production
 *
 * It's easiest to let the grammar production for func_name allow subscripts
 * and '*', which we then must reject here.
 */
static List *
check_func_name(List *names, core_yyscan_t yyscanner)
{
	ListCell   *i;

	foreach(i, names)
	{
		if (!IsA(lfirst(i), String))
			parser_yyerror("syntax error");
	}
	return names;
}

/* check_indirection --- check the result of indirection production
 *
 * We only allow '*' at the end of the list, but it's hard to enforce that
 * in the grammar, so do it here.
 */
static List *
check_indirection(List *indirection, core_yyscan_t yyscanner)
{
	ListCell *l;

	foreach(l, indirection)
	{
		if (IsA(lfirst(l), A_Star))
		{
			if (lnext(l) != NULL)
				parser_yyerror("improper use of \"*\"");
		}
	}
	return indirection;
}

/* extractArgTypes()
 * Given a list of FunctionParameter nodes, extract a list of just the
 * argument types (TypeNames) for input parameters only.  This is what
 * is needed to look up an existing function, which is what is wanted by
 * the productions that use this call.
 */
static List *
extractArgTypes(List *parameters)
{
	List	   *result = NIL;
	ListCell   *i;

	foreach(i, parameters)
	{
		FunctionParameter *p = (FunctionParameter *) lfirst(i);

		if (p->mode != FUNC_PARAM_OUT && p->mode != FUNC_PARAM_TABLE)
			result = lappend(result, p->argType);
	}
	return result;
}

/* findLeftmostSelect()
 * Find the leftmost component SelectStmt in a set-operation parsetree.
 */
static SelectStmt *
findLeftmostSelect(SelectStmt *node)
{
	while (node && node->op != SETOP_NONE)
		node = node->larg;
	Assert(node && IsA(node, SelectStmt) && node->larg == NULL);
	return node;
}

/* insertSelectOptions()
 * Insert ORDER BY, etc into an already-constructed SelectStmt.
 *
 * This routine is just to avoid duplicating code in SelectStmt productions.
 */
static void
insertSelectOptions(SelectStmt *stmt,
					List *sortClause, List *lockingClause,
					Node *limitOffset, Node *limitCount,
					WithClause *withClause,
					core_yyscan_t yyscanner)
{
	Assert(IsA(stmt, SelectStmt));

	/*
	 * Tests here are to reject constructs like
	 *	(SELECT foo ORDER BY bar) ORDER BY baz
	 */
	if (sortClause)
	{
		if (stmt->sortClause)
			ereport(ERROR,
					(errcode(ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple ORDER BY clauses not allowed"),
					 parser_errposition(exprLocation((Node *) sortClause))));
		stmt->sortClause = sortClause;
	}
	/* We can handle multiple locking clauses, though */
	stmt->lockingClause = list_concat(stmt->lockingClause, lockingClause);
	if (limitOffset)
	{
		if (stmt->limitOffset)
			ereport(ERROR,
					(errcode(ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple OFFSET clauses not allowed"),
					 parser_errposition(exprLocation(limitOffset))));
		stmt->limitOffset = limitOffset;
	}
	if (limitCount)
	{
		if (stmt->limitCount)
			ereport(ERROR,
					(errcode(ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple LIMIT clauses not allowed"),
					 parser_errposition(exprLocation(limitCount))));
		stmt->limitCount = limitCount;
	}
	if (withClause)
	{
		if (stmt->withClause)
			ereport(ERROR,
					(errcode(ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple WITH clauses not allowed"),
					 parser_errposition(exprLocation((Node *) withClause))));
		stmt->withClause = withClause;
	}
}

static Node *
makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg)
{
	SelectStmt *n = makeNode(SelectStmt);

	n->op = op;
	n->all = all;
	n->larg = (SelectStmt *) larg;
	n->rarg = (SelectStmt *) rarg;
	return (Node *) n;
}

/* SystemFuncName()
 * Build a properly-qualified reference to a built-in function.
 */
List *
SystemFuncName(char *name)
{
	return list_make2(makeString("pg_catalog"), makeString(name));
}

/* SystemTypeName()
 * Build a properly-qualified reference to a built-in type.
 *
 * typmod is defaulted, but may be changed afterwards by caller.
 * Likewise for the location.
 */
TypeName *
SystemTypeName(char *name)
{
	return makeTypeNameFromNameList(list_make2(makeString("pg_catalog"),
											   makeString(name)));
}

/* doNegate()
 * Handle negation of a numeric constant.
 *
 * Formerly, we did this here because the optimizer couldn't cope with
 * indexquals that looked like "var = -4" --- it wants "var = const"
 * and a unary minus operator applied to a constant didn't qualify.
 * As of Postgres 7.0, that problem doesn't exist anymore because there
 * is a constant-subexpression simplifier in the optimizer.  However,
 * there's still a good reason for doing this here, which is that we can
 * postpone committing to a particular internal representation for simple
 * negative constants.	It's better to leave "-123.456" in string form
 * until we know what the desired type is.
 */
static Node *
doNegate(Node *n, int location)
{
	if (IsA(n, A_Const))
	{
		A_Const *con = (A_Const *)n;

		/* report the constant's location as that of the '-' sign */
		con->location = location;

		if (con->val.type == T_Integer)
		{
			con->val.val.ival = -con->val.val.ival;
			return n;
		}
		if (con->val.type == T_Float)
		{
			doNegateFloat(&con->val);
			return n;
		}
	}

	return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n, location);
}

static void
doNegateFloat(Value *v)
{
	char   *oldval = v->val.str;

	Assert(IsA(v, Float));
	if (*oldval == '+')
		oldval++;
	if (*oldval == '-')
		v->val.str = oldval+1;	/* just strip the '-' */
	else
	{
		char   *newval = (char *) palloc(strlen(oldval) + 2);

		*newval = '-';
		strcpy(newval+1, oldval);
		v->val.str = newval;
	}
}

static Node *
makeAArrayExpr(List *elements, int location)
{
	A_ArrayExpr *n = makeNode(A_ArrayExpr);

	n->elements = elements;
	n->location = location;
	return (Node *) n;
}

static Node *
makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args,
			int location)
{
	XmlExpr    *x = makeNode(XmlExpr);

	x->op = op;
	x->name = name;
	/*
	 * named_args is a list of ResTarget; it'll be split apart into separate
	 * expression and name lists in transformXmlExpr().
	 */
	x->named_args = named_args;
	x->arg_names = NIL;
	x->args = args;
	/* xmloption, if relevant, must be filled in by caller */
	/* type and typmod will be filled in during parse analysis */
	x->location = location;
	return (Node *) x;
}

/*
 * Merge the input and output parameters of a table function.
 */
static List *
mergeTableFuncParameters(List *func_args, List *columns)
{
	ListCell   *lc;

	/* Explicit OUT and INOUT parameters shouldn't be used in this syntax */
	foreach(lc, func_args)
	{
		FunctionParameter *p = (FunctionParameter *) lfirst(lc);

		if (p->mode != FUNC_PARAM_IN && p->mode != FUNC_PARAM_VARIADIC)
			ereport(ERROR,
					(errcode(ERRCODE_SYNTAX_ERROR),
					 errmsg("OUT and INOUT arguments aren't allowed in TABLE functions")));
	}

	return list_concat(func_args, columns);
}

/*
 * Determine return type of a TABLE function.  A single result column
 * returns setof that column's type; otherwise return setof record.
 */
static TypeName *
TableFuncTypeName(List *columns)
{
	TypeName *result;

	if (list_length(columns) == 1)
	{
		FunctionParameter *p = (FunctionParameter *) linitial(columns);

		result = (TypeName *) copyObject(p->argType);
	}
	else
		result = SystemTypeName("record");

	result->setof = true;

	return result;
}

/*
 * Convert a list of (dotted) names to a RangeVar (like
 * makeRangeVarFromNameList, but with position support).  The
 * "AnyName" refers to the any_name production in the grammar.
 */
static RangeVar *
makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner)
{
	RangeVar *r = makeNode(RangeVar);

	switch (list_length(names))
	{
		case 1:
			r->catalogname = NULL;
			r->schemaname = NULL;
			r->relname = strVal(linitial(names));
			break;
		case 2:
			r->catalogname = NULL;
			r->schemaname = strVal(linitial(names));
			r->relname = strVal(lsecond(names));
			break;
		case 3:
			r->catalogname = strVal(linitial(names));;
			r->schemaname = strVal(lsecond(names));
			r->relname = strVal(lthird(names));
			break;
		default:
			ereport(ERROR,
					(errcode(ERRCODE_SYNTAX_ERROR),
					 errmsg("improper qualified name (too many dotted names): %s",
							NameListToString(names)),
					 parser_errposition(position)));
			break;
	}

	r->relpersistence = RELPERSISTENCE_PERMANENT;
	r->location = position;

	return r;
}

/* Separate Constraint nodes from COLLATE clauses in a ColQualList */
static void
SplitColQualList(List *qualList,
				 List **constraintList, CollateClause **collClause,
				 core_yyscan_t yyscanner)
{
	ListCell   *cell;
	ListCell   *prev;
	ListCell   *next;

	*collClause = NULL;
	prev = NULL;
	for (cell = list_head(qualList); cell; cell = next)
	{
		Node   *n = (Node *) lfirst(cell);

		next = lnext(cell);
		if (IsA(n, Constraint))
		{
			/* keep it in list */
			prev = cell;
			continue;
		}
		if (IsA(n, CollateClause))
		{
			CollateClause *c = (CollateClause *) n;

			if (*collClause)
				ereport(ERROR,
						(errcode(ERRCODE_SYNTAX_ERROR),
						 errmsg("multiple COLLATE clauses not allowed"),
						 parser_errposition(c->location)));
			*collClause = c;
		}
		else
			elog(ERROR, "unexpected node type %d", (int) n->type);
		/* remove non-Constraint nodes from qualList */
		qualList = list_delete_cell(qualList, cell, prev);
	}
	*constraintList = qualList;
}

/*
 * Process result of ConstraintAttributeSpec, and set appropriate bool flags
 * in the output command node.  Pass NULL for any flags the particular
 * command doesn't support.
 */
static void
processCASbits(int cas_bits, int location, const char *constrType,
			   bool *deferrable, bool *initdeferred, bool *not_valid,
			   core_yyscan_t yyscanner)
{
	/* defaults */
	if (deferrable)
		*deferrable = false;
	if (initdeferred)
		*initdeferred = false;
	if (not_valid)
		*not_valid = false;

	if (cas_bits & (CAS_DEFERRABLE | CAS_INITIALLY_DEFERRED))
	{
		if (deferrable)
			*deferrable = true;
		else
			ereport(ERROR,
					(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
					 /* translator: %s is CHECK, UNIQUE, or similar */
					 errmsg("%s constraints cannot be marked DEFERRABLE",
							constrType),
					 parser_errposition(location)));
	}

	if (cas_bits & CAS_INITIALLY_DEFERRED)
	{
		if (initdeferred)
			*initdeferred = true;
		else
			ereport(ERROR,
					(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
					 /* translator: %s is CHECK, UNIQUE, or similar */
					 errmsg("%s constraints cannot be marked DEFERRABLE",
							constrType),
					 parser_errposition(location)));
	}

	if (cas_bits & CAS_NOT_VALID)
	{
		if (not_valid)
			*not_valid = true;
		else
			ereport(ERROR,
					(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
					 /* translator: %s is CHECK, UNIQUE, or similar */
					 errmsg("%s constraints cannot be marked NOT VALID",
							constrType),
					 parser_errposition(location)));
	}
}

/* parser_init()
 * Initialize to parse one query string
 */
void
parser_init(base_yy_extra_type *yyext)
{
	yyext->parsetree = NIL;		/* in case grammar forgets to set it */
}

/*
 * Must undefine this stuff before including scan.c, since it has different
 * definitions for these macros.
 */
#undef yyerror
#undef yylval
#undef yylloc

#include "scan.c"

